Sobes.tech
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 (hash in Swift, hashValue oder hash(into:)), damit das Wörterbuch den Schlüssel schnell finden kann.
  • Vergleich auf Gleichheit: Das Objekt muss die Vergleichsmethode auf Gleichheit (isEqual in Objective-C, Equatable in 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.