Swift. Словари. Создание и удаление
From AsIsWiki
Назад · Оглавление · Дальше
Contents |
Термины
Dictionary (словарь) - неупорядоченная коллекция элементов одного типа,
с доступом к значению элемента по ключу.
Элемент словаря - это пара ключ:значение
Все ключи словаря:
- должны быть уникальны
- должны быть одного типа данных
- должны соответствовать протоколу Hashable
Все значения словаря должны быть одного типа данных.
Создание словаря
1. С помощью литерала словаря:
var a = ["pen":"ручка", "dog":"собака", "clock":"часы"] a // ["clock": "часы", "pen": "ручка", "dog": "собака"]
2. Из списка кортежей (ключ, значение):
var a = Dictionary(dictionaryLiteral: (1, "one"), (2, "two"), (3, "three")) a // [3: "three", 1: "one", 2: "two"]
3. Из массива кортежей (ключ, значение):
let m = [(1, "qwe"), (2, "wer"), (3, "ert")] let a = Dictionary(uniqueKeysWithValues: m) a // [3: "ert", 1: "qwe", 2: "wer"]
4. Из двух последовательностей:
let a = ["pi", "e", "g"] let b = [3.14, 2.71, 9.81] let d = Dictionary(uniqueKeysWithValues: zip(a, b)) d // ["e": 2.71, "g": 9.81, "pi": 3.14]
Функция zip(_:_:) формирует последовательность пар значений.
Каждая пара состоит из элементов двух базовых последовательностей.
Тип данных словаря
Dictionary<Т1, Т2> // полная форма [Т1:Т2] // краткая форма T1: Hashable // ключ T2: Any // значение
Тип данных задан неявно:
var d = [200: "success", 300: "warning", 400: "error"] type(of: d) // Dictionary<Int, String>.Type
Тип данных задан явно:
var a: Dictionary<Int, Bool> = [100: false, 200: true, 400: true] var b: [String:String] = ["Jonh":"Dave", "Eleonor":"Green"]
Создание пустого словаря
var a: [String:Int] = [:] // литерал пустого словаря var b = Dictionary<String, Int>() // функция без входных аргументов a // [:] b // [:]
Удаление всех значений словаря
Пример 1
var dic = ["RU":"Россия", "GB":"Великобритания", "US":"США"] dic = [:] // [:]
Пример 2
var birthYear = [ 1991: ["John", "Ann", "Vasiliy"], 1993: ["Alex", "Boris"] ] birthYear // [1991: ["John", "Ann", "Vasiliy"], 1993: ["Alex", "Boris"]] birthYear = [:] // [:]
Тип словаря birthYear:
[Int: [String]] или Dictionary<Int, Array<String>>
Назад · Оглавление · Дальше