Какой результат печатает программа (пример 81)

Будут выведены пары a 1, b 2 и c 3, но порядок строк не определён. range по map не гарантирует порядок вставки или сортировку.

Короткий ответ

Что ответить на собеседовании

Будут выведены пары a 1, b 2 и c 3, но порядок строк не определён. range по map не гарантирует порядок вставки или сортировку.

Подробный разбор

Ответ с пояснениями

Условие

Определите, какой вывод появится при выполнении следующего кода на Go:

m := map[string]int{"a":1,"b":2,"c":3}

for a, b := range m {
    fmt.Println(a, b)
}

Ответ

Будут выведены пары a 1, b 2 и c 3, но порядок строк не определён. range по map не гарантирует порядок вставки или сортировку.

Каждая существующая пара при таком неизменяемом отображении обходится один раз. Возможный вывод — a 1, затем b 2, затем c 3, но полагаться на него нельзя даже между двумя обходами одной map.

Если нужен устойчивый вывод, соберите ключи в срез, отсортируйте его и обращайтесь к значениям по ключам. Пример предполагает выполнение фрагмента внутри функции с подключённым fmt; сам по себе он не является полным Go-файлом.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее