Ответ
Словарь (Dictionary) в Swift используется для хранения неупорядоченных коллекций пар ключ-значение, где каждый ключ уникален. Основные сценарии применения:
- Быстрый поиск по ключу. Доступ к значению по ключу в среднем выполняется за O(1).
- Моделирование ассоциативных данных. Например, хранение настроек пользователя, параметров запроса или свойств объекта.
- Группировка данных. Объединение элементов по общему признаку (ключу).
- Подсчет частоты элементов. Ключ — элемент, значение — количество его вхождений.
Пример:
var capitals = ["Россия": "Москва", "Франция": "Париж"]
// Добавление
capitals["Япония"] = "Токио"
// Быстрый доступ
if let russianCapital = capitals["Россия"] {
print(russianCapital) // Москва
}
Ключевые ограничения и best practices:
- Тип ключа должен соответствовать протоколу
Hashable. - Порядок элементов не гарантирован (до Swift 4). Для сохранения порядка добавления используйте
OrderedDictionaryиз сторонних библиотек или iOS 15+. - Не подходит, если важен порядок элементов или нужны дублирующиеся ключи.
- Используйте
compactMapValues,mapValuesдля безопасных преобразований.