Junior — Middle
Как се реализира уникалността на елементите в колекция от тип Set?
sobes.tech AI
Отговор от AI
В iOS колекцията Set осигурява уникалността на елементите чрез използване на хеширане и сравнение за равенство.
Всеки елемент в Set трябва да съответства на протокола Hashable, който изисква реализиране на:
- метода
hash(into:)— за изчисляване на хеш кода на елемента; - оператора
==— за проверка на равенството на два елемента.
Когато добавяте елемент към Set, системата изчислява неговия хеш и проверява дали вече съществува елемент с същия хеш и равенство. Ако да, елементът не се добавя, осигурявайки уникалност.
Пример:
struct Person: Hashable {
let id: Int
let name: String
}
var people = Set<Person>()
people.insert(Person(id: 1, name: "Alice"))
people.insert(Person(id: 1, name: "Alice")) // няма да бъде добавен, тъй като вече съществува такъв елемент
По този начин, уникалността в Set се постига чрез хеширане и сравнение на елементите.