Sobes.tech
Junior — Middle

Ako sa vykonáva sekvencia prechádzania prvkov v dátovej štruktúre Map?

sobes.tech AI

Odpoveď od AI

V jazyku Go map dátová štruktúra nezaručuje určitý poradie prechodu prvkov. Pri iterácii pomocou slučky for range bude poradie náhodné a môže sa meniť pri každom spustení programu.

Príklad prechodu prvkov v mape:

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

Ak je potrebný zoradený prechod, zvyčajne sa kľúče extrahujú do poľa, zoradia sa a potom sa prechádzajú v zoradenom poradí:

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

Týmto spôsobom nie je poradie prechodu v map prednastavené a je náhodné.