Junior — Middle
Welche Bedingungen und Eigenschaften müssen Objekte haben, um als Schlüssel in einem Wörterbuch verwendet werden zu können?
sobes.tech KI
Antwort von AI
Damit ein Objekt als Schlüssel in einem Wörterbuch (z.B. in NSDictionary oder Swift Dictionary) verwendet werden kann, muss es die folgenden Bedingungen erfüllen:
- Hashbarkeit: Das Objekt muss eine korrekt implementierte Methode zur Berechnung des Hash-Codes haben (
hashin Swift,hashValueoderhash(into:)), damit das Wörterbuch den Schlüssel schnell finden kann. - Vergleich auf Gleichheit: Das Objekt muss die Vergleichsmethode auf Gleichheit (
isEqualin Objective-C,Equatablein Swift) korrekt implementieren, damit das Wörterbuch verschiedene Schlüssel unterscheiden kann.
Zum Beispiel, in Swift, um einen benutzerdefinierten Typ als Schlüssel zu verwenden, muss man die Protokolle Hashable und Equatable implementieren:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Auf diese Weise sollten die Objekte unveränderlich in den Feldern sein, die an der Berechnung des Hashs und des Vergleichs beteiligt sind, damit die Schlüssel im Wörterbuch stabil bleiben.