貓王運算子()

在 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)。僅當左側為空時才評估右側表示式。