Sobes.tech
Junior — Middle

Cum se implementează utilizarea obiectelor personalizate ca chei atunci când se lucrează cu dicționare?

sobes.tech AI

Răspuns de la AI

Pentru a utiliza obiecte personalizate ca chei în dicționare (de exemplu, în Swift Dictionary), aceste obiecte trebuie să respecte protocoalele Hashable și Equatable.

Aceasta înseamnă că clasa sau structura trebuie să implementeze metode pentru calcularea valorii hash și verificarea egalității obiectelor.

Exemplu în 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"

În acest exemplu, cheia dicționarului este un obiect User, identificat în mod unic prin id. Implementarea hash(into:) și == permite stocarea și căutarea corectă a obiectelor în dicționar.