Junior — Middle
Aké typy objektov sú povolené ako prvky-kľúče v kolekcii typu Set?
sobes.tech AI
Odpoveď od AI
V kolekcii typu Set na iOS (napríklad NSSet alebo Swift Set) môžu byť kľúčové prvky objekty, ktoré spĺňajú nasledujúce požiadavky:
- V Objective-C (NSSet): objekty musia podporovať metódy
-hasha-isEqual:pre správne porovnanie a hashovanie. - V Swift (Set): prvky musia zodpovedať protokolu
Hashable, teda mať hash hodnotu a možnosť porovnania na rovnosť.
Toto je nevyhnutné, aby kolekcia mohla efektívne uchovávať unikátne prvky a rýchlo vykonávať operácie vyhľadávania.
Príklad v Swift:
struct Person: Hashable {
let id: Int
let name: String
}
var peopleSet = Set<Person>()
peopleSet.insert(Person(id: 1, name: "Иван"))
Takže akýkoľvek objekt, ktorý implementuje Hashable (v Swift) alebo metódy hash a isEqual: (v Objective-C), môže byť prvkom Setu.