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

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

是否可以使用空安全操作符?调用它?这给了我一个编译错误。
myCallback?()

如果不为空,我只会以这种丑陋的方式打电话
 if(myCallback != null)
     myCallback!!()

最佳答案

您可以这样称呼它:

 myCallback?.invoke()

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

10-04 14:51