Senior
O map garante a ordem de leitura dos dados?
sobes.tech IA
Resposta da IA
Em Go, o tipo incorporado map não garante a ordem de iteração dos elementos ao ler. A iteração sobre um map ocorre numa ordem pseudoaleatória, que pode mudar a cada execução do programa. Se for necessária uma iteração ordenada, é preciso armazenar as chaves adicionalmente num slice e ordená-las antes da iteração.
Exemplo de iteração de um map com ordenação das chaves:
m := map[string]int{"b": 2, "a": 1, "c": 3}
// Obter as chaves
keys := make([]string, 0, len(m))
for k := range m {
keys = append(keys, k)
}
// Ordenar as chaves
sort.Strings(keys)
// Iterar sobre as chaves ordenadas
for _, k := range keys {
fmt.Println(k, m[k])
}