Kann man ein Objekt als Schlüssel in einer Dictionary-Sammlung oder einer ähnlichen Datenstruktur verwenden?
sobes.tech KI
Antwort von AI
In iOS (Swift oder Objective-C) können Objekte als Schlüssel in Wörterbüchern (Dictionary) verwendet werden, aber das Objekt muss bestimmte Anforderungen erfüllen.
In Swift müssen die Schlüssel des Wörterbuchs das Protokoll Hashable erfüllen, das heißt, das Objekt muss korrekt implementierte Hash- und Gleichheitsvergleichsmethoden haben. Dies ist notwendig, damit das Wörterbuch Werte effizient anhand der Schlüssel speichern und suchen kann.
Beispiel für die Verwendung eines benutzerdefinierten Objekts als Schlüssel:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Wenn das Objekt Hashable nicht implementiert, kann es nicht als Schlüssel verwendet werden. In Objective-C müssen die Schlüssel des Wörterbuchs Objekte sein, die die Methoden -hash und -isEqual: implementieren.
Daher können Objekte als Schlüssel verwendet werden, wenn sie das Hashing und den Vergleich korrekt implementieren.