试图理解 Kotlin 中的 null 安全性:以下这两个语句似乎都可以正常工作并且在我的程序中可以互换:
var y1: Double = 0.0
get() = when(hasParent) {
true -> parent!!.y1
else -> field
}
和
var y1: Double = 0.0
get() = parent?.y1!!
(hasParent
只是一个查看是否parent
为空的吸气剂)
这两个在语义上是相同的,还是它们实际上是不同的表达方式,意味着不同的事物?如果它们在语义上的意思相同,那么出于某种原因,第一个是否比第二个更受欢迎?