Junior — Middle
Welche Eigenschaften muss ein Objekt haben, das das Hashable-Protokoll implementiert, damit es in Hash-Tabellen verwendet werden kann?
sobes.tech KI
Antwort von AI
Ein Objekt, das das Protokoll Hashable in iOS (Swift) implementiert, muss die folgenden Eigenschaften besitzen:
-
Konformität zum Hashable-Protokoll — Das Objekt muss die Methode
hash(into:)implementieren, die alle bedeutenden Eigenschaften für den Hash in die Hash-Funktion aufnimmt. -
Gleichheit (Equatable) — Objekte, die als gleich gelten (über den Operator
==), müssen denselben Hash haben.
Dies ist notwendig, damit das Objekt in Hash-Tabellen verwendet werden kann (z.B. in Set oder als Schlüssel in Dictionary), wobei der Hash die Position des Elements bestimmt und die Gleichheit die Einzigartigkeit.
Implementierungsbeispiel:
struct User: Hashable {
var id: Int
var name: String
func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
static func == (lhs: User, rhs: User) -> Bool {
return lhs.id == rhs.id
}
}
Hier ist id ein eindeutiger Bezeichner, anhand dessen Hash und Gleichheit bestimmt werden.