Урок 9. Словари
Главная / Уроки / Страница блока Основы / Урок 9. Словари
1 Ноября 2022
Словарь – это тип коллекции, представляющий собой набор пар ключ и значение [kay: value].
Давайте создадим один словарь с одной парой:
// Словарь с ключами целых чисел и строковыми значениями
kay value
let integers = [1: “one”]
Перед вами словарь, который содержит в себе одну пару ключ и значение, давайте добавим еще две пары:
// Словарь с ключами целых чисел и строковыми значениями
let integers = [1: "one", 2: "two", 3: "three"]
Таким образом через запятую вы можете добавлять любое количество пар.
Давайте посмотрим на тип данного словаря (зажимаем клавишу option и кликаем по свойству, если окно не появляется то следует запустить playground):
Вы можете видеть что все ключи имеют тип Int, а все значения тип String.
Все ключи должны быть одного типа данных, и все значения должны быть одного типа. Вы не сможете создать словарь следующим образом:
Первая пара будет иметь тип [String: String] тогда как вторая и третья тип [Int: String] это разные типы данных, поэтому компилятор нам выдает ошибку.
Обратите внимание, что ключи и значения могут быть любых типов.
Давайте создадим еще пару словарей:
// Словарь с ключами-строками и значениями-целыми числами
kay value
let people = [“Anna”: 32, “Bob”: 45, “Charlie”: 60]
// Словарь с числовыми ключами типа Double и значениями числовых массивов
kay value kay value kay value
let dictOfnumbers = [1.0: [1, 2, 3], 2.5: [4, 5, 6], 3.14: [7, 8, 9]]
Ну и давайте посмотрим на тип данных каждого свойства:
Как вы видите в качестве ключа и в качестве значения могут выступать любые типы данных даже ваши кастомные, но об этом вы узнаете чуть позже.
Ключи в словаре должны быть уникальными, то есть ты не сможешь создать словарь с одинаковыми ключами
Давайте создадим словарь с одинаковыми ключами и значениями:
Компилятор выдает нам ошибку, потому что ключи должны быть уникальными, давайте исправим один из ключей:
Ошибка пропадает. В отличие от ключей, значения могут повторятся.
Словарь это не упорядоченная коллекция, в отличие от массивов, там элементы располагаются в хаотичном порядке. Поэтому при каждом запуске компилятора, порядок будет изменяться.
Достать значение по ключу
let people = ["Anna": 32, "Bob": 45, "Charlie": 60]
people["Anna"]
если мы посмотрим с права, то увидим значение 32
А если мы видим это значение с права, то мы это значение можем использовать, например присвоить новому свойству:
let people = ["Anna": 32, "Bob": 45, "Charlie": 60]
let age = people["Anna"]
Свойство age будет иметь тип Int, потому что по факту мы взяли значение по ключу Anna и присвоили его новому свойству.
Мы можем присвоить новое значение по выбранному ключу, только словарь нужно сделать изменяемым, то есть переменной: