Junior — Middle
Koje tipove objekata je dozvoljeno koristiti kao element-ključeve u kolekciji tipa Set?
sobes.tech АИ
Одговор од АИ
U kolekciji tipa Set na iOS-u (npr. NSSet ili Swift Set), elementi-ključevi mogu biti objekti koji ispunjavaju sledeće zahteve:
- U Objective-C (NSSet): objekti moraju podržavati metode
-hashi-isEqual:za ispravno poređenje i heširanje. - U Swift (Set): elementi moraju biti u skladu sa protokolom
Hashable, tj. imati heš-vrednost i mogućnost poređenja na jednakost.
Ovo je neophodno da kolekcija može efikasno da čuva jedinstvene elemente i brzo izvršava operacije pretraživanja.
Primer u Swift-u:
struct Person: Hashable {
let id: Int
let name: String
}
var peopleSet = Set<Person>()
peopleSet.insert(Person(id: 1, name: "Иван"))
Dakle, bilo koji objekat koji implementira Hashable (u Swift-u) ili metode hash i isEqual: (u Objective-C-u) može biti element seta.