猫王运算符()
在 Kotlin 中,我们可以声明可以容纳 null reference
的变量。假设我们有一个可以为空的引用 a
,我们可以说“如果 a
不为 null,请使用它,否则使用一些非空值 x
”
var a: String? = "Nullable String Value"
现在,a
可以为 null。因此,当我们需要访问 a
的值时,我们需要执行安全检查,无论它是否包含值。我们可以通过传统的 if...else
声明进行这种安全检查。
val b: Int = if (a != null) a.length else -1
但是这里有先进的运算符 Elvis
(运算符 Elvis:?:
)。if...else
以上可以用 Elvis 运算符表示如下:
val b = a?.length ?: -1
如果 ?:
(这里:a?.length
)左边的表达式不为 null,则 elvis 运算符返回它,否则它返回右边的表达式(这里:-1
)。仅当左侧为空时才评估右侧表达式。