¿Cuál es la diferencia entre los operadores == y === en Swift? Explicación detallada para principiantes
¡Hola a todos! Acabo de empezar a aprender Swift y me encontré con una confusión. En el código veo dos operadores: == y ===. A primera vista hacen lo mismo: comparan valores. Pero noté que el compilador a veces se queja cuando intento usarlos incorrectamente.
Aquí hay un ejemplo que me confunde:
```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) // Error: el operador binario '==' no se puede aplicar a operandos de tipo 'Person'
print(person1 === person2) // false
print(person1 === person3) // true
```
¿Por qué `==` no funciona en absoluto para mi clase, mientras que `===` funciona pero da resultados diferentes? ¿Cuál es la diferencia entre ellos? ¿Cuándo usar cada uno? He oído que esto está relacionado con tipos por referencia y tipos por valor, pero me gustaría obtener una explicación clara con ejemplos. Gracias de antemano por la respuesta.