Sobes.tech
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 се постига чрез хеширане и сравнение на елементите.