猫王运算符()

在 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)。仅当左侧为空时才评估右侧表达式。