Middle
Co zobrazí program při iteraci přes mapu?
sobes.tech AI
Odpověď od AI
V Go není pořadí iterace přes mapu definováno a může se při každém spuštění programu měnit. To je způsobeno tím, že mapy v Go jsou implementovány pomocí hash tabulek a pro bezpečnost a nepředvídatelnost je pořadí průchodu záměrně náhodně rozvrženo.
Příklad:
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
for k, v := range m {
fmt.Println(k, v)
}
}
Při každém spuštění může být výstup odlišný, například:
b 2
a 1
c 3
nebo
c 3
b 2
a 1
Pokud je potřeba seřazený výstup, je třeba klíče shromáždit do pole, seřadit je a iterovat přes seřazené klíče.