Sobes.tech
Junior — Middle

Jak je realizována sekvence průchodu prvky ve struktuře dat Map?

sobes.tech AI

Odpověď od AI

V jazyce Go struktura dat map nezaručuje určitý pořadí procházení prvků. Při iteraci pomocí smyčky for range bude pořadí náhodné a může se při každém spuštění programu měnit.

Příklad procházení prvků v mapě:

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

Pokud je potřeba seřazené procházení, obvykle se klíče extrahují do pole, seřadí se a poté se procházejí v seřazeném pořadí:

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 způsobem není pořadí procházení v map přednastaveno a je náhodné.