Sobes.tech
Назад к вопросам
Principal
5

Каков порядок обхода элементов в контейнере map в Go?

Компании, где спрашивали
Kaspersky

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

sobes.tech AI

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

То есть при каждой итерации по map порядок ключей может отличаться, и нельзя полагаться на последовательность элементов.

Пример:

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

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

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