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 !