Avatar ·

Was ist der Unterschied zwischen den Operatoren == und === in Swift? Eine ausführliche Erklärung für Anfänger

Hallo zusammen! Ich habe gerade angefangen, Swift zu lernen, und bin auf Verwirrung gestoßen. Im Code sehe ich zwei Operatoren: == und ===. Auf den ersten Blick tun sie dasselbe — sie vergleichen Werte. Aber ich habe bemerkt, dass der Compiler manchmal meckert, wenn ich versuche, sie falsch zu verwenden. Hier ist ein Beispiel, das mich verwirrt: ```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) // Fehler: binärer Operator '==' kann nicht auf Operanden vom Typ 'Person' angewendet werden print(person1 === person2) // false print(person1 === person3) // true ``` Warum funktioniert `==` für meine Klasse gar nicht, während `===` funktioniert, aber unterschiedliche Ergebnisse liefert? Was ist der Unterschied zwischen ihnen? Wann sollte man welchen verwenden? Ich habe gehört, dass dies mit Referenztypen und Werttypen zusammenhängt, aber ich würde gerne eine klare Erklärung mit Beispielen bekommen. Vielen Dank im Voraus für die Hilfe!