Swift. Словари. Создание и удаление

From AsIsWiki
(Difference between revisions)
Jump to: navigation, search
 
Line 2: Line 2:
 
[[Swift. Множества. Базовые свойства и методы|Назад]] ·
 
[[Swift. Множества. Базовые свойства и методы|Назад]] ·
 
[[Swift|Оглавление]] ·
 
[[Swift|Оглавление]] ·
[[Swift. Словари. Взаимодействие с элементами|Дальше]]
+
[[Swift. Словари. Взаимодействие с элементами|Дальше]]
  
  
Line 121: Line 121:
 
[[Swift. Множества. Базовые свойства и методы|Назад]] ·
 
[[Swift. Множества. Базовые свойства и методы|Назад]] ·
 
[[Swift|Оглавление]] ·
 
[[Swift|Оглавление]] ·
[[Swift. Словари. Взаимодействие с элементами|Дальше]]
+
[[Swift. Словари. Взаимодействие с элементами|Дальше]]
 
</div>
 
</div>

Latest revision as of 19:16, 20 March 2022

Назад · Оглавление · Дальше


Contents

[edit] Термины

Dictionary (словарь) - неупорядоченная коллекция элементов одного типа,
с доступом к значению элемента по ключу.

Элемент словаря - это пара ключ:значение

Все ключи словаря:

  • должны быть уникальны
  • должны быть одного типа данных
  • должны соответствовать протоколу Hashable

Все значения словаря должны быть одного типа данных.

[edit] Создание словаря

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(_:_:) формирует последовательность пар значений.
Каждая пара состоит из элементов двух базовых последовательностей.

[edit] Тип данных словаря

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"]

[edit] Создание пустого словаря

var a: [String:Int] = [:]          // литерал пустого словаря

var b = Dictionary<String, Int>()  // функция без входных аргументов

a  // [:]
b  // [:]

[edit] Удаление всех значений словаря

Пример 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>>



Назад · Оглавление · Дальше

Personal tools
Namespaces

Variants
Actions
Navigation
Tools