Sobes.tech
Junior — Middle

É possível garantir a ordem de percorrimento dos elementos na estrutura de dados Map?

sobes.tech IA

Resposta da IA

Em Go, a ordem de percorrer os elementos na estrutura de dados map não é garantida e é aleatória. Isto é feito intencionalmente para evitar que o código dependa da ordem de percurso e para aumentar a segurança.

Se for necessária uma ordem garantida, geralmente:

  • Extrai-se as chaves para um slice
  • Ordena-se o slice
  • Percorre-se o map pelas chaves ordenadas

Exemplo:

keys := make([]string, 0, len(myMap))
for k := range myMap {
    keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
    fmt.Println(k, myMap[k])
}

Dessa forma, não se pode confiar na ordem de percurso do map em Go.