Différence entre == et === en Swift
Bonjour à tous ! Pouvez-vous m'expliquer, s'il vous plaît, quelle est la différence fondamentale entre les opérateurs == et === en Swift ? Je comprends que les deux sont utilisés pour la comparaison, mais quand j'essaie de comparer deux instances d'une classe, le résultat est différent de ce que j'attends.
Voici un exemple de code qui me trouble :
class Person {
var name: String
init(name: String) {
self.name = name
}
}
let person1 = Person(name: "Alice")
let person2 = Person(name: "Alice")
print(person1 == person2) // Erreur de compilation : Binary operator '==' cannot be applied to two 'Person' operands
print(person1 === person2) // false
let person3 = person1
print(person1 === person3) // trueJe m'attendais à ce que person1 == person2 retourne true, car ils ont les mêmes noms, mais j'ai obtenu une erreur de compilation. Pendant ce temps, === fonctionne, mais retourne false, bien que les objets semblent identiques. J'ai déjà essayé :
- Ajouter