kotlin - 有什么作用?。在作业的左侧使用时在 Kotlin 中的意思是什么?

根据Kotlin docs , 这 ?。运算符表示“安全调用”,这意味着如果在方法调用链中使用它,如果它使用的任何值都为 null,则整个链将返回 null。

但是如果它用在作业的左侧呢?由于左侧不是“返回”任何东西的一侧,因此它似乎可能具有不同的效果。这是我所说的一个例子:

val myObj = SomeObj()
myObj?.property = SomeClass.someFunc() // What does ?. do in this context?

最佳答案

这意味着如果左侧的安全调用之一失败(即它的接收者为空),则整个赋值被跳过,右侧的表达式根本不计算。

val nullable: Container? = null
nullable?.x = f() // f is not called

(runnable demo)

https://stackoverflow.com/questions/44590682/

相关文章:

java - 错误 :Kotlin: Unsupported plugin option: org.

android - 应用程序模块中引用的 android 库模块的“ Unresolved 引用”错

android - 为全屏 Activity 摆脱不必要的根布局

kotlin - 在 Kotlin 中对可空整数使用 "greater than"、 "less t

android - 如何混淆我用 kotlin 编码的 sdk(并摆脱元数据)

android - kotlin 'onCreate' 不会覆盖任何内容

android - 延迟对 Kotlin 协程进行单元测试

java - 如何在 Kotlin 中初始化一个线程?

android - 将 LiveData 与数据绑定(bind)一起使用

javafx - Kotlin 。基本 JavaFX 应用程序