Junior — Middle
Como é realizada a sequência de percorrimento dos elementos na estrutura de dados Map?
sobes.tech IA
Resposta da IA
Em Go, a estrutura de dados map não garante uma ordem específica na iteração dos elementos. Ao iterar com um ciclo for range, a ordem será aleatória e pode mudar a cada execução do programa.
Exemplo de iteração sobre um map:
m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, value := range m {
fmt.Println(key, value)
}
Se for necessária uma iteração ordenada, normalmente extrai-se as chaves para um slice, ordena-se e depois percorre-se na ordem ordenada:
keys := make([]string, 0, len(m))
for k := range m {
keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
fmt.Println(k, m[k])
}
Dessa forma, a sequência de iteração em um map não é definida por padrão e é aleatória.