Выбор ответа Junior Коллекции и строки спрашивают часто обновлено

Порядок ключей в Dictionary

Вопрос

Что гарантирует Swift о порядке обхода Dictionary?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Ничего: порядок не определён. Dictionary в Swift не упорядочен, и хеши ещё и рандомизируются от запуска к запуску.

Варианты ответа

  1. Порядок вставки, как в Python 3.7+
  2. Сортировку ключей по возрастанию
  3. Ничего: порядок не определёнправильный ответ
  4. Порядок вставки для строковых ключей

Разбор

Dictionary в Swift не упорядочен, и хеши ещё и рандомизируются от запуска к запуску. Нужен порядок: сортируют ключи (dict.keys.sorted()) или берут OrderedDictionary из пакета swift-collections. Ожидание порядка вставки перенесено из Python и JavaScript и в Swift ломает тесты.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.