空安全运算符,用于Kotlin中的功能变量

时间:2018-08-15 20:02:34

标签: kotlin kotlin-null-safety

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

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

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

myCallback?()

如果电话不为空,我只会以这种丑陋的方式找到电话

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

1 个答案:

答案 0 :(得分:7)

您可以按以下方式调用它:

 myCallback?.invoke()

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