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!
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Erstellung von CLI-Tools in C++: Von der Idee zum fertigen Werkzeug
Dokumentation in PHP: Wie man Code schreibt, den man nicht zu zeigen schämt
Enterprise Swift: Wie Code in großen Unternehmen geschrieben wird
Rust: Funktional oder OOP? Den Stil für idealen Code wählen