我想声明一个可以保存函数的var
,但我想稍后再分配该函数。
我如何声明这样的变量,例如何时没有参数并且什么也没有返回?
我尝试了这个但是没有接受:
private var myFunction : ()
稍后在代码中,我会像这样分配代码,我想:
myFunction = () => { doSomething() }
答案 0 :(得分:5)
像这样:
def doSomething(): Unit = ???
class A {
private var m1: Function0[Unit] = _
// later down the line
m1 = () => { doSomething() }
private var m2: () => Unit = _
// later down the line
m2 = () => { doSomething() }
}
只需使用函数文字语法或FunctionN
个特征之一声明函数的类型。
您的错误是使用无效语法声明myFunction
。
语法为[visibility] {var|val|lazy val} {variable-name}[:<variable-type>}[=<value]
其中[]
表示可选部分和{}
必填部分。
如果省略可见性,则假定为public
。至于下划线,您可以检查其含义in this SO post