Back to questions
amoCRM
Senior
4
Гарантирует ли map порядок чтения данных?
Companies where asked
Answer from AI
sobes.tech AI
В Go встроенный тип map не гарантирует порядок обхода элементов при чтении. Итерация по map происходит в псевдослучайном порядке, который может меняться при каждом запуске программы. Если нужен упорядоченный обход, необходимо дополнительно хранить ключи в срезе и сортировать их перед итерацией.
Пример обхода map с сортировкой ключей:
m := map[string]int{"b": 2, "a": 1, "c": 3}
// Получаем ключи
keys := make([]string, 0, len(m))
for k := range m {
keys = append(keys, k)
}
// Сортируем ключи
sort.Strings(keys)
// Итерация по отсортированным ключам
for _, k := range keys {
fmt.Println(k, m[k])
}