Sobes.tech
Junior — Middle

Lze garantovat pořadí průchodu prvků ve struktuře dat Map?

sobes.tech AI

Odpověď od AI

V jazyce Go není pořadí průchodu prvků v datové struktuře map garantováno a je náhodné. To je záměrně takto provedeno, aby se zabránilo závislosti kódu na pořadí průchodu a zvýšila bezpečnost.

Pokud je potřeba garantované pořadí, obvykle:

  • Klíče se extrahují do pole (slice)
  • Pole se setřídí
  • Mapu procházíme podle seřazených klíčů

Příklad:

keys := make([]string, 0, len(myMap))
for k := range myMap {
    keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
    fmt.Println(k, myMap[k])
}

Tímto způsobem nelze spoléhat na pořadí průchodu map v jazyce Go.