Junior — Middle
Ce tipuri de obiecte pot fi utilizate ca elemente-cheie într-o colecție de tip Set?
sobes.tech AI
Răspuns de la AI
În colecția de tip Set pe iOS (de exemplu, NSSet sau Swift Set), elementele-cheie pot fi obiecte care îndeplinesc următoarele cerințe:
- În Objective-C (NSSet): obiectele trebuie să suporte metodele
-hashși-isEqual:pentru comparare și hashare corectă. - În Swift (Set): elementele trebuie să respecte protocolul
Hashable, adică să aibă o valoare hash și posibilitatea de a fi comparate pentru egalitate.
Acest lucru este necesar pentru ca colecția să poată stoca eficient elemente unice și să execute rapid operațiuni de căutare.
Exemplu în Swift:
struct Person: Hashable {
let id: Int
let name: String
}
var peopleSet = Set<Person>()
peopleSet.insert(Person(id: 1, name: "Иван"))
Prin urmare, orice obiect care implementează Hashable (în Swift) sau metodele hash și isEqual: (în Objective-C) poate fi un element al Set-ului.