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.