Ответ
Dictionary (словарь) в Swift — это универсальная неупорядоченная коллекция, которая хранит пары ключ-значение. Каждый ключ в словаре уникален и используется для поиска соответствующего значения.
Ключевые характеристики:
- Тип:
Dictionary<Key, Value>или краткая форма[Key: Value]. - Уникальность ключей: Все ключи должны быть уникальными. Попытка вставить значение с существующим ключом перезаписывает старое значение.
- Производительность: Доступ к значению по ключу в среднем выполняется за время O(1), благодаря внутренней реализации на основе хеш-таблицы.
- Порядок: Элементы не имеют гарантированного порядка. Начиная с Swift 5, порядок вставки сохраняется как деталь реализации, но на это не следует полагаться для логики программы.
Требования к ключу: Тип ключа (Key) должен соответствовать протоколу Hashable (например, String, Int, Double, Bool или пользовательские типы).
Базовые операции:
// Создание
var capitals: [String: String] = ["Франция": "Париж", "Япония": "Токио"]
// Добавление или изменение значения
capitals["Германия"] = "Берлин" // Добавление
capitals["Япония"] = "Киото" // Изменение существующего
// Получение значения (возвращает Optional)
let paris = capitals["Франция"] // String?
if let tokyo = capitals["Япония"] {
print(tokyo) // "Киото"
}
// Удаление
capitals["Германия"] = nil
let removedValue = capitals.removeValue(forKey: "Франция")
// Итерация
for (country, capital) in capitals {
print("(country): (capital)")
}
Важные методы и свойства:
isEmpty,count— проверка на пустоту и количество элементов.keys,values— коллекции всех ключей и значений.updateValue(_:forKey:)— устанавливает значение и возвращает старое (если было).removeAll()— очистка словаря.
Иммутабельность: Словарь, объявленный через let, является неизменяемым (нельзя добавлять, удалять или изменять элементы).