Sobes.tech
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.