Sobes.tech
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, hashValue sau hash(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.