Sobes.tech
Junior — Middle

Ce tipuri de date sau obiecte pot acționa ca chei în dicționare sau tabele hash?

sobes.tech AI

Răspuns de la AI

În dicționare sau tabele hash, cheile pot fi obiecte care îndeplinesc următoarele cerințe:

  • Au metode de comparare a egalității (equals în Java, isEqual în Swift) și de calcul al valorii hash (hashCode în Java) implementate corect.
  • Sunt imutabile sau cel puțin nu se schimbă după utilizarea ca cheie, pentru a evita problemele de căutare.

În iOS (Swift), cheile din dicționare (Dictionary) sunt de obicei tipuri care respectă protocolul Hashable. Acestea pot fi:

  • Tipuri standard: String, Int, Double, Bool.
  • Structuri sau clase personalizate care implementează protocolul Hashable.

Exemplu:

struct Person: Hashable {
    let id: Int
    let name: String
}

var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"

Prin urmare, cheile trebuie să fie hash-abile și imutabile pentru funcționarea corectă a dicționarului.