當我們有一個可空的字串引用 str 時 ,我們需要獲取 str 的長度時
在Java中我們是:
int length = str != null ? str.length : 0複製程式碼
這樣當 str 為空時長度預設為 0
在kotlin中我們可以是用 if-else 表示式來完成 如下:
val length = if(str != null) str.length else 0複製程式碼
這個和java時等同的
不過在kotlin中 我們還可以使用 Elvis 操作符表達, 寫作 "?:" 如下:
val length = str?.length ?: 0複製程式碼
這行程式碼中 如果 ?: 左側的表示式非空,elvis 操作符就返回其左側表示式,否則返回右側表示式。
注意,當且僅當左側為空時,才會對右側表示式求值。
在kotlin中,因為 throw 和 return 都是表示式,所以它們也可以用再 elvis 表示式右側。這樣對我們而言會非常的方便, 例如,檢查函式引數 如下:
fun foo(node:Node):String?{
val parent = node.getParent() ?: teturn null
val name = node.name ?: throw IllegalArgumentException("name expected")
}複製程式碼