Sobes.tech
Junior — Middle
103

Welche Mechanismen gewährleisten die Einzigartigkeit der Elemente in einer Menge?

Unternehmen wurden gefragt
DNSDNS

Antwort von AI

sobes.tech KI

В iOS для обеспечения уникальности элементов в коллекции типа множество (Set) используется хеширование и сравнение элементов.

Каждый элемент должен соответствовать протоколу Hashable, который требует реализации:

  • Хеш-функции (hash(into:)), возвращающей хеш-код элемента.
  • Оператора равенства (Equatable), чтобы определить, когда два элемента считаются одинаковыми.

При добавлении элемента в 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")) // не добавится, так как уже есть такой элемент

Таким образом, уникальность обеспечивается через корректную реализацию Hashable и Equatable.