在Kotlin內有兩種相等性
- 結構的相等性(Structural equality,==)
實際上我們可以將 a == b 轉換為以下的寫法
a?.equals(b) ?: (b === null)
如果a不是null,就會呼叫equals(Any?)函式;除此之外則是確認b是否等於null
- 參考的相等性(Referential equality,===)
如果我們說 a === b 的判斷結果是對的,則這個結果只有當a以及b皆指向相同的物件
另外如果我們要判斷兩個陣列是否有相同元素以及一樣的次序,則可以使用contentEquals()
this表達式可以用來代表目前的接收器(receiver)
- 在類別成員中,this代表著目前的類別物件
- 在擴充函式中,this則代表接收器(receiver)的參數