Контракт map не включает порядок обхода: это отображение ключей в значения, а не упорядоченная последовательность. Так реализация может свободно менять размещение элементов.
Почему разработчики Go не гарантируют порядок обхода map при range?
Контракт map не включает порядок обхода: это отображение ключей в значения, а не упорядоченная последовательность. Так реализация может свободно менять размещение элементов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Контракт map не включает порядок обхода: это отображение ключей в значения, а не упорядоченная последовательность. Так реализация может свободно менять размещение элементов.
Нельзя рассчитывать даже на одинаковый порядок двух обходов без изменений map. Если нужен стабильный вывод, соберите ключи в слайс, отсортируйте их и обращайтесь к значениям по этому списку. Для порядка вставки используйте отдельную структуру, явно его сохраняющую.