Junior — Middle
Jakie typy obiektów można używać jako elementy-klucze w kolekcji typu Set?
sobes.tech AI
Odpowiedź od AI
W kolekcji typu Set na iOS (np. NSSet lub Swift Set) elementami-kluczami mogą być obiekty spełniające następujące wymagania:
- W Objective-C (NSSet): obiekty muszą obsługiwać metody
-hashi-isEqual:dla poprawnego porównania i haszowania. - W Swift (Set): elementy muszą spełniać protokół
Hashable, czyli mieć wartość hash i możliwość porównania na równość.
Jest to konieczne, aby kolekcja mogła efektywnie przechowywać unikalne elementy i szybko wykonywać operacje wyszukiwania.
Przykład w Swift:
struct Person: Hashable {
let id: Int
let name: String
}
var peopleSet = Set<Person>()
peopleSet.insert(Person(id: 1, name: "Иван"))
W związku z tym, dowolne obiekty implementujące Hashable (w Swift) lub metody hash i isEqual: (w Objective-C) mogą być elementami Set.