Sobes.tech
Middle

O que o programa exibirá com uma iteração sobre um mapa?

sobes.tech IA

Resposta da IA

No Go, a ordem de iteração sobre um mapa não é definida e pode mudar a cada execução do programa. Isso ocorre porque os mapas em Go são implementados usando tabelas de hash, e para segurança e imprevisibilidade, a ordem de percurso é intencionalmente randomizada.

Exemplo:

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}
    for k, v := range m {
        fmt.Println(k, v)
    }
}

A cada execução, a saída pode ser diferente, por exemplo:

b 2
a 1
c 3

ou

c 3
b 2
a 1

Se for necessária uma saída ordenada, deve-se coletar as chaves em um slice, ordená-las e iterar sobre as chaves ordenadas.