Diferença entre == e === em Swift
Olá a todos! Expliquem, por favor, qual é a diferença fundamental entre os operadores == e === em Swift? Eu entendo que ambos são usados para comparação, mas quando tento comparar duas instâncias de classe, o resultado é diferente do esperado.
Aqui está um exemplo de código que me confunde:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
let person1 = Person(name: "Alice")
let person2 = Person(name: "Alice")
print(person1 == person2) // Erro de compilação: Binary operator '==' cannot be applied to two 'Person' operands
print(person1 === person2) // false
let person3 = person1
print(person1 === person3) // trueEu esperava que person1 == person2 retornasse true, já que eles têm os mesmos nomes, mas obtive um erro de compilação. Enquanto isso, === funciona, mas retorna false, embora os objetos pareçam iguais. Já tentei:
- Adicionar