Sobes.tech
Junior — Middle

Kaip įgyvendinti naudotojo objektų naudojimą kaip raktus dirbant su žodynais?

sobes.tech AI

Atsakymas iš AI

Naudojant pritaikytus objektus kaip raktus žodynuose (pavyzdžiui, Swift Dictionary), šie objektai turi atitikti Hashable ir Equatable protokolus.

Tai reiškia, kad klasė arba struktūra turi įgyvendinti metodus, skirtus skaičiuoti žymės reikšmę ir patikrinti objektų lygybę.

Pavyzdys 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"

Šiame pavyzdyje žodyno raktas yra User objektas, kuris unikalus pagal id. hash(into:) ir == įgyvendinimai leidžia teisingai saugoti ir ieškoti objektus žodyne.