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