Junior — Middle
Jaké typy objektů jsou povoleny jako klíčové prvky v kolekci typu Set?
sobes.tech AI
Odpověď od AI
V kolekci typu Set na iOS (například NSSet nebo Swift Set) mohou být klíčové prvky objekty, které splňují následující požadavky:
- V Objective-C (NSSet): objekty musí podporovat metody
-hasha-isEqual:pro správné porovnání a hashování. - V Swift (Set): prvky musí odpovídat protokolu
Hashable, tj. mít hodnotu hash a možnost porovnání na rovnost.
To je nutné, aby kolekce mohla efektivně uchovávat unikátní prvky a rychle provádět operace vyhledávání.
Příklad ve Swift:
struct Person: Hashable {
let id: Int
let name: String
}
var peopleSet = Set<Person>()
peopleSet.insert(Person(id: 1, name: "Иван"))
Tedy jakýkoli objekt, který implementuje Hashable (ve Swift) nebo metody hash a isEqual: (v Objective-C), může být prvkem Setu.