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