前言
當初參加Kotlin讀書會的時候聽到Elvis Operator的來歷覺得很酷,在之後寫kotlin的時候也時常會使用到,算是很實用的運算子。
Elvis Operator其實是來自貓王的名字 - Elvis Presley,據說是因為當初創造這個運算子出來的人覺得這個運算子看起來很像貓王... 但其實我覺得比較像JOJO
用法
Result = First Operant ?: Second Operant
Elvis Operator 非常直觀,
- 當 First Operant 的內容"不為" Null 時,則回傳 First Operant
- 當 First Operant 的內容"為" Null 時,則回傳 Second Operant
也可以理解為右側運算元是當左側運算元為 Null 時的回傳預設值
給個栗子
1. 正常用法
2. 可以用在 Funtion 的 Return
3. 可以 Return Exception
4. 神級用法,目前還沒有這麼使用過
結論
或許你看到這邊會想說 ?: 就是一個null check的運算子,為什麼不按照Java的寫法?
val resutl = if(firstOperant != null) firstOperant else secondOperant
其實可以,這兩種寫法其實是沒有差別的,但若採用 Elvis Operator 的話,整體上可以少寫一點 code,所以如果讓我選擇我還是會偏好前者的寫法。
另外還有一個很重要的原因!!!多用帥哥命名的運算子寫code,或許我也會變比較帥吧