Будут выведены пары a 1, b 2 и c 3, каждая на отдельной строке, но их порядок не определён. map не хранит контракт порядка вставки или сортировки.
Какой результат печатает программа? (пример 65)
Будут выведены пары a 1, b 2 и c 3, каждая на отдельной строке, но их порядок не определён. map не хранит контракт порядка вставки или сортировки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой вывод появится в консоли после выполнения следующей Go‑программы:
import ("fmt")
func main(){
m := map[string]int{"a": 1, "b": 2, "c": 3}
for k, v := range m {
fmt.Println(k, v)
}
}
Ответ
Будут выведены пары a 1, b 2 и c 3, каждая на отдельной строке, но их порядок не определён. map не хранит контракт порядка вставки или сортировки.
Один конкретный запуск может случайно показать алфавитный порядок, однако полагаться на это нельзя даже при повторном обходе. Для стабильного результата соберите ключи в []string, отсортируйте и затем печатайте m[key]. Значения данного примера не изменяются во время обхода, поэтому неопределён именно порядок, а не состав пар.