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.