Junior — Middle
100
Құрамында бірегей элементтері бар жиын түріндегі коллекцияның бірегейлігін қандай механизм қамтамасыз етеді?
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
В 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.