Swift 的 恒等(===)和不恒等(!==)
Swift 提供了兩個運算符 === 和 !==,用于判斷兩個對象是否引用同一個對象實例。
這是用來比較引用類型(例如類實例)的操作符,而不是用來比較值類型(如結構體、枚舉、基本數據類型)。
===:判斷兩個引用是否指向同一個對象(引用同一塊內存地址)。!==:判斷兩個引用是否指向不同的對象。
class Person { var name: String init(name: String) { self.name = name } } let person1 = Person(name: "Alice") let person2 = person1 // person2 和 person1 引用的是同一個對象 let person3 = Person(name: "Alice") // person3 是一個新的對象實例 if person1 === person2 { print("person1 and person2 reference the same instance") } else { print("person1 and person2 reference different instances") } if person1 !== person3 { print("person1 and person3 reference different instances") }
輸出
person1 and person2 reference the same instance
person1 and person3 reference different instances
在這個例子中,person1 和 person2 引用的是同一個 Person 對象,因此 person1 === person2 結果為 true。而 person1 和 person3 雖然它們的內容相同,但它們是兩個不同的對象實例,因此 person1 !== person3 結果為 true。
總結:
===和!==比較的是引用,用于判斷兩個對象是否是同一個對象實例。- 這與值類型的比較(使用
==和!=)不同,值類型比較的是它們的內容。
posted on 2024-10-12 18:32 ACM_Someone like you 閱讀(162) 評論(0) 收藏 舉報
浙公網安備 33010602011771號