Kotlin相等性
Kotlin 中有兩種類型的相等性:
- 引用相等(兩個引用指向同一對象)
- 結構相等(用
equals()檢查)
引用相等
引用相等由 ===(以及其否定形式 !==)操作判斷。a === b
當且僅當 a 和 b 指向同一個對象時求值爲 true。
結構相等
結構相等由 ==(以及其否定形式 !=)操作判斷。按照慣例,像 a == b 這樣的表達式會翻譯成
a?.equals(b) ?: (b === null)
也就是說如果 a 不是 null 則調用 equals(Any?) 函數,否則(即 a 是 null)檢查 b 是否與 null 引用相等。
請注意,當與 null 顯式比較時完全沒必要優化你的代碼:a == null 會被自動轉換爲 a=== null。