【问题标题】:What is the name of Kotlin's !! operatorKotlin 的名字是什么!!操作员
【发布时间】:2018-05-12 14:34:36
【问题描述】:

在与其他开发人员对话时,我如何称呼 !! 运算符?

在 Kotlin 中,?: 称为 Elvis 运算符

这些消息来源没有说明!! 的名字是什么:

网上看,!! 的总称是double bang。即使 swift 的 ! 运算符被称为 forced unwrapping,我是否对 Kotlin 使用相同的操作(注意:swift 中的 ! 类似于 Kotlin 的 !!。)

我在寻找什么:

  • Kotlin 开发人员可以理解的我可以口头调用 !! 操作的名称
  • double exclamation 或 bang bang 或 double bang 以外的名称

【问题讨论】:

  • 哇。第一个问题很好,欢迎堆栈溢出!
  • 我个人喜欢bang bang。简明扼要:如果你使用它,事情可能会爆炸。

标签: kotlin terminology


【解决方案1】:

Kotlin documentation 将其称为the not-null assertion operator。

就我个人而言,我称之为hold my beer operator。

【讨论】:

  • 我更喜欢danger zone operator :)
【解决方案2】:

“Kotlin in Action”称其为非空断言运算符。我们决定更新文档以使用该术语。

【讨论】:

    【解决方案3】:

    我喜欢说 "non-null asserted call" 诸如

    a!!.length
    

    这也是它在 Android Studio ALT+ENTER 上下文菜单中的显示方式。

    对我来说很有意义,因为它总结了它实际在做什么。

    【讨论】:

      【解决方案4】:

      我习惯称它为“double bang”,但实际上hold my beer operator 也确实触及了它的核心(谢谢@Todd ;-))。

      【讨论】:

        【解决方案5】:

        我正在使用“强制展开”(与 Swift 中的相同)。

        【讨论】:

        • AFAIK Kotlin 编译器仍然包装这样的语句以提供比简单的 Java 的 NPE 更详细的异常。它将类似于 NPE,但会携带诸如负责 NPE 的类/方法/代码行之类的信息。
        猜你喜欢
        • 1970-01-01
        • 2018-06-23
        • 1970-01-01
        • 1970-01-01
        • 2014-01-28
        • 1970-01-01
        • 2013-01-11
        • 2016-10-27
        • 1970-01-01
        相关资源
        最近更新 更多