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.