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
。