Junior — Middle
Ce condiții și caracteristici trebuie să aibă obiectele pentru a putea fi utilizate ca chei într-un dicționar?
sobes.tech AI
Răspuns de la AI
Pentru ca un obiect să poată fi utilizat ca cheie într-un dicționar (de exemplu, în NSDictionary sau Swift Dictionary), acesta trebuie să îndeplinească următoarele condiții:
- Hashabilitate: obiectul trebuie să aibă o metodă de calcul a hash-ului implementată corect (
hashîn Swift,hashValuesauhash(into:)), astfel încât dicționarul să poată găsi rapid cheia. - Comparabilitate pentru egalitate: obiectul trebuie să implementeze corect metoda de comparare pentru egalitate (
isEqualîn Objective-C,Equatableîn Swift), astfel încât dicționarul să poată distinge diferite chei.
De exemplu, în Swift, pentru a folosi un tip personalizat ca și cheie, trebuie să implementezi protocoalele Hashable și Equatable:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Astfel, obiectele trebuie să fie imutabile pe câmpurile care participă la calculul hash-ului și comparare, pentru ca cheile să rămână stabile în dicționar.