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
```
为什么`==`对我的类完全不工作,而`===`工作但给出不同的结果?它们之间有什么区别?什么时候该用哪个?我听说这与引用类型和值类型有关,但希望能得到清晰的解释和示例。提前感谢!