Junior — Middle
Bir küme türündeki koleksiyonda öğelerin benzersizliği nasıl sağlanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
В 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.