Middle
O que o programa exibirá com uma iteração sobre um mapa?
sobes.tech IA
Resposta da IA
No Go, a ordem de iteração sobre um mapa não é definida e pode mudar a cada execução do programa. Isso ocorre porque os mapas em Go são implementados usando tabelas de hash, e para segurança e imprevisibilidade, a ordem de percurso é intencionalmente randomizada.
Exemplo:
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)
}
}
A cada execução, a saída pode ser diferente, por exemplo:
b 2
a 1
c 3
ou
c 3
b 2
a 1
Se for necessária uma saída ordenada, deve-se coletar as chaves em um slice, ordená-las e iterar sobre as chaves ordenadas.