Middle
Šta će prikazati program sa iteracijom preko mape?
sobes.tech АИ
Одговор од АИ
U Go-u, redosled iteracije preko mape nije definisan i može se menjati pri svakom pokretanju programa. To je zbog toga što su mape u Go-u implementirane korišćenjem hash tabela, i iz bezbednosnih i nepredvidivih razloga, redosled prolaska je namerno randomizovan.
Primer:
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)
}
}
Pri svakom pokretanju, izlaz može biti različit, na primer:
b 2
a 1
c 3
ili
c 3
b 2
a 1
Ako je potrebna sortirana izlaz, treba prikupiti ključeve u niz, sortirati ih i iterirati po sortiranim ključevima.