Middle
Was muss getan werden, damit die Benutzerstruktur zum Schlüssel im Wörterbuch wird?
sobes.tech KI
Antwort von AI
Es ist notwendig, das Protokoll Hashable zu implementieren.
Das Protokoll Hashable erbt von Equatable.
Equatable: Erfordert die Implementierung des Gleichheitsoperators==zum Vergleich zweier Instanzen einer Struktur.Hashable: Erfordert die Implementierung der Eigenschafthash(into:), die den Hash-Wert für eine Instanz der Struktur berechnet.
Beispiel für die Implementierung:
struct Coordinate: Hashable {
let x: Int
let y: Int
// MARK: - Equatable
static func == (lhs: Coordinate, rhs: Coordinate) -> Bool {
return lhs.x == rhs.x && lhs.y == rhs.y
}
// MARK: - Hashable
func hash(into hasher: inout Hasher) {
hasher.combine(x)
hasher.combine(y)
}
}
// Verwendung in einem Wörterbuch
let coordinatesDictionary: [Coordinate: String] = [
Coordinate(x: 0, y: 0): "Origin",
Coordinate(x: 1, y: 1): "Point (1,1)"
]
print(coordinatesDictionary[Coordinate(x: 0, y: 0)]!)
Hasher wird zur Generierung des Hash-Werts verwendet. Die Methode combine nimmt verschiedene hashfähige Werte auf und kombiniert sie, um den endgültigen Hash zu erstellen.