Scala: 声明一个变量来保存一个函数(lambda),而不立即赋值。

18 浏览
0 Comments

Scala: 声明一个变量来保存一个函数(lambda),而不立即赋值。

我想声明一个可以容纳函数的 var,但我想稍后才分配函数。

如何声明这样的变量,例如,当它不接受任何参数并且不返回任何值时?

我尝试了以下代码,但不被接受:

private var myFunction : ()

在代码的后面,我会像这样为它分配代码:

myFunction = () => { doSomething() }

0
0 Comments

问题的出现原因是声明了一个变量来保存一个没有立即赋值的函数(lambda),但是在声明变量时使用了无效的语法。解决方法是使用函数字面量语法或者使用FunctionN特征之一来声明函数的类型。

在给出的代码中,通过使用Function0[Unit]来声明函数的类型,然后在稍后的代码中将函数赋值给变量m1m2。这样就成功地声明了一个变量来保存一个没有立即赋值的函数。

在编辑部分,对错误的原因进行了解释,指出了声明myFunction时使用了无效的语法。解释了正确的语法格式,并提到如果省略了可见性修饰符,默认为public。对于下划线的含义也进行了解释。

在问题的最后,提到了主要问题是不知道没有返回值的函数签名的"variable-type"是什么。

0