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

Гарантирует ли map порядок чтения данных?

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

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

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])
}