Avatar ·

Swift中运算符==和===有什么区别?新手详细解释

大家好!我刚开始学习Swift,遇到了困惑。在代码中我看到两个运算符:==和===。乍一看它们做的是同一件事——比较值。但我注意到,当我试图错误地使用它们时,编译器有时会报错。 下面是一个让我困惑的例子: ```swift class Person { var name: String init(name: String) { self.name = name } } let person1 = Person(name: "Alice") let person2 = Person(name: "Alice") let person3 = person1 print(person1 == person2) // 错误:二进制运算符'=='不能应用于'Person'类型的操作数 print(person1 === person2) // false print(person1 === person3) // true ``` 为什么`==`对我的类完全不工作,而`===`工作但给出不同的结果?它们之间有什么区别?什么时候该用哪个?我听说这与引用类型和值类型有关,但希望能得到清晰的解释和示例。提前感谢!