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  阅读(32)  评论(0编辑  收藏  举报

导航