Sobes.tech
Junior — Middle

Se percorrer o Map várias vezes, a sequência de chaves será mantida?

sobes.tech IA

Resposta da IA

No Go, o tipo map não garante a preservação da ordem das chaves durante a iteração. Em cada passagem pelo map, a ordem de percorrer as chaves pode ser diferente, pois a representação interna da tabela hash não é ordenada.

Se precisar manter a ordem, por exemplo, a ordem de inserção, deve usar uma estrutura de dados adicional, como um slice de chaves, e iterar sobre ela.

Exemplo:

m := map[string]int{"a": 1, "b": 2, "c": 3}
keys := []string{"a", "b", "c"}

for _, k := range keys {
    fmt.Println(k, m[k])
}

Dessa forma, a sequência de iteração será estável e previsível.