Avatar ·

Quelle est la différence entre les opérateurs == et === en Swift ? Explication détaillée pour les débutants

Bonjour à tous ! Je viens de commencer à apprendre Swift et je suis confronté à une confusion. Dans le code, je vois deux opérateurs : == et ===. À première vue, ils font la même chose — comparent des valeurs. Mais j'ai remarqué que le compilateur se plaint parfois quand j'essaie de les utiliser incorrectement. Voici un exemple qui me perturbe : ```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) // Erreur : l'opérateur binaire '==' ne peut pas être appliqué aux opérandes de type 'Person' print(person1 === person2) // false print(person1 === person3) // true ``` Pourquoi `==` ne fonctionne-t-il pas du tout pour ma classe, alors que `===` fonctionne mais donne des résultats différents ? Quelle est la différence entre eux ? Quand utiliser lequel ? J'ai entendu dire que cela est lié aux types référence et aux types valeur, mais j'aimerais une explication claire avec des exemples. Merci d'avance pour votre aide !