Sobes.tech
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.