3

在我的 Kotlin 应用程序中,我有这样的可为空变量

private var myCallback : (() -> Unit)? = null

是否可以使用空安全运算符?来调用它?这给了我一个编译错误。

myCallback?()

如果它不为空,我发现只有这种丑陋的通话方式

 if(myCallback != null)
     myCallback!!()
4

1 回答 1

7

你可以这样称呼它:

 myCallback?.invoke()

函数类型变量的()语法只是invoke()运算符的语法糖,如果你扩展它,可以使用常规的安全调用语法来调用它。

于 2018-08-15T20:06:22.580 回答