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

Vit*_*lii 3 kotlin kotlin-null-safety

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

private var myCallback : (() -> Unit)? = null
Run Code Online (Sandbox Code Playgroud)

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

myCallback?()
Run Code Online (Sandbox Code Playgroud)

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

 if(myCallback != null)
     myCallback!!()
Run Code Online (Sandbox Code Playgroud)

yol*_*ole 7

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

 myCallback?.invoke()
Run Code Online (Sandbox Code Playgroud)

()对函数类型的变量语法很简单的语法糖invoke()操作,可以使用常规安全调用语法,如果你展开它被调用.