Назад к вопросам
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)
}
При каждом запуске программа может выводить ключи в разном порядке.
Если нужен упорядоченный обход, необходимо извлечь ключи в срез, отсортировать его, а затем обходить по отсортированным ключам.