Middle
Co wyświetli program podczas iteracji po mapie?
sobes.tech AI
Odpowiedź od AI
W Go kolejność iteracji po mapie nie jest zdefiniowana i może się zmieniać przy każdym uruchomieniu programu. Wynika to z faktu, że mapy w Go są implementowane przy użyciu tablic haszujących, a dla bezpieczeństwa i nieprzewidywalności celowo losowo się kolejność iteracji.
Przykład:
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)
}
}
Przy każdym uruchomieniu wyjście może być różne, na przykład:
b 2
a 1
c 3
lub
c 3
b 2
a 1
Jeśli potrzebne jest uporządkowane wyjście, należy zebrać klucze do slice'a, posortować je i iterować po posortowanych kluczach.