代码之家  ›  专栏  ›  技术社区  ›  Vitalii

Kotlin函数变量的空安全运算符

  •  3
  • Vitalii  · 技术社区  · 6 年前

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

    是否可以使用零安全操作员 ? 叫它?这给了我一个编译错误。

    myCallback?()
    

    如果不是空的话,我只能用这种丑陋的方式打电话

     if(myCallback != null)
         myCallback!!()
    
    1 回复  |  直到 6 年前
        1
  •  7
  •   yole    6 年前

    你可以这样称呼它:

     myCallback?.invoke()
    

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