Avatar ·

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) // true

Je 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