Junior — Middle
Quels mécanismes garantissent l'unicité des éléments dans une collection de type ensemble?
sobes.tech IA
Réponse de l'IA
В 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.