Swift. Множества. Создание и удаление
From AsIsWiki
Назад · Оглавление · Дальше
Contents |
Литерал множества
Set (множество) - неупорядоченная коллекция уникальных элементов.
Литерал множества идентичен литералу массива, но не содержит дубликатов.
Значения литерала должны быть одного типа и соответствовать протоколу Hashable.
Для разработчика, множество является неупорядоченным.
Однако, для каждого элемента множества вычисляется хэш (индекс),
который используется для внутренней сортировки (индексации) элементов.
Все фундаментальные типы поддерживают протокол Hashable,
и могут быть использованы для создания множества.
Создание множества
Для создания множества используется ключевое слово Set:
// тип данных задан явно: var a: Set<Int> = [1, 5, 0] // {5, 0, 1} var b = Set<Int>(arrayLiteral: 1, 5, 0) // {0, 5, 1} // тип данных задан неявно: var c: Set = [1, 5, 0] // {0, 1, 5} var d = Set(arrayLiteral: 1, 5, 0) // {1, 0, 5} // порядок элементов во множествах не влияет на их эквивалентность: a == b // true b == c // true c == d // true
Если не указать Set, то будет создан массив:
var b = [1, 5, 0] // [1, 5, 0] type(of: b) // Array<Int>.Type
Создание множества из диапазона значений
var m = Set(1...10) // {7, 8, 5, 3, 1, 10, 6, 9, 4, 2}
Создание множества из дубликатов
var m: Set = [1, 1, 1] // {1}
Создание пустого множества
Пустое множество создается с помощью литерала пустого множества []:
var a: Set<Int> = [] var b = Set<String>() // или так a // Set([]) b // Set([])
Удаление всех элементов множества
var a: Set<String> = ["qwe", "wer", "etr"] a // {"etr", "qwe", "wer"} a = [] // Set([]) - для удаления используется литерал пустого множества
Примеры строковых множеств
var a: Set<String> = ["qwe", "wer", "ert"] // {"wer", "qwe", "ert"} var b: Set = ["qwe", "wer", "ert"] // {"qwe", "wer", "ert"} var c = Set<String>(arrayLiteral: "qwe", "wer", "ert") // {"wer", "ert", "qwe"} var d = Set(arrayLiteral: "qwe", "wer", "ert") // {"ert", "qwe", "wer"}
Назад · Оглавление · Дальше