Junior — Middle
Ako implementovať používanie vlastných objektov ako kľúčov pri práci so slovníkmi?
sobes.tech AI
Odpoveď od AI
Na použitie vlastných objektov ako kľúčov v slovníkoch (napríklad v Swift Dictionary) je potrebné, aby tieto objekty zodpovedali protokolom Hashable a Equatable.
To znamená, že trieda alebo štruktúra musia implementovať metódy na výpočet hash hodnoty a kontrolu rovnosti objektov.
Príklad v Swift:
struct User: Hashable {
let id: Int
let name: String
func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
static func == (lhs: User, rhs: User) -> Bool {
return lhs.id == rhs.id
}
}
var dict: [User: String] = [:]
let user1 = User(id: 1, name: "Alice")
dict[user1] = "Admin"
V tomto príklade je kľúčom slovníka objekt User, ktorý je jednoznačne identifikovaný pomocou id. Implementácia hash(into:) a == umožňuje správne ukladanie a vyhľadávanie objektov v slovníku.