Sobes.tech
Назад к вопросам
Middle
2

Что выведет программа с итерацией по map?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В Go порядок итерации по map не определён и может меняться при каждом запуске программы. Это связано с тем, что map в Go реализованы с использованием хеш-таблиц, и для безопасности и непредсказуемости порядок обхода специально рандомизируется.

Пример:

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}
    for k, v := range m {
        fmt.Println(k, v)
    }
}

При каждом запуске вывод может быть разным, например:

b 2
a 1
c 3

или

c 3
b 2
a 1

Если нужен упорядоченный вывод, нужно отдельно собрать ключи в срез, отсортировать его и итерироваться по отсортированным ключам.