Sobes.tech
Senior

Da li mapa garantuje redosled čitanja podataka?

sobes.tech АИ

Одговор од АИ

У Језику 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])
}