Ответ
Тип Set в Swift — это неупорядоченная коллекция уникальных элементов. Его используют, когда важны следующие операции:
- Гарантия уникальности – автоматическое удаление дубликатов при вставке.
let ids: Set = [101, 102, 101, 103] // [101, 102, 103] (порядок может быть любым) - Быстрая проверка принадлежности (contains) – выполняется за O(1) в среднем, что значительно быстрее, чем O(n) у
Array.let allowedTags: Set = ["VIP", "Premium", "New"] if allowedTags.contains(userTag) { // Мгновенная проверка grantAccess() } -
Теоретико-множественные операции – эффективное выполнение операций над коллекциями.
let developers: Set = ["Alice", "Bob", "Charlie"] let designers: Set = ["Bob", "Diana"] let team = developers.union(designers) // Все: ["Alice", "Bob", "Charlie", "Diana"] let bothRoles = developers.intersection(designers) // Только Bob: ["Bob"] let onlyDevs = developers.subtracting(designers) // Devs, не являющиеся дизайнерами: ["Alice", "Charlie"]
Когда НЕ использовать Set:
- Когда важен порядок элементов – используйте
Array. - Когда нужны дубликаты значений – используйте
Array. - Когда требуется частая индексация по целочисленному индексу –
Arrayэффективнее.
Примечание: Для собственных типов в Set необходимо, чтобы тип соответствовал протоколу Hashable.