Sobes.tech
Junior — Middle

A estrutura de dados Map garante a preservação da ordem de inserção dos elementos?

sobes.tech IA

Resposta da IA

Na linguagem Go, a estrutura de dados map não garante a preservação da ordem de inserção dos elementos. A iteração sobre um map ocorre em uma ordem aleatória, que pode mudar a cada percurso.

Se for necessário manter a ordem de inserção, deve-se usar uma estrutura adicional, como um slice para armazenar as chaves na ordem desejada, ou usar bibliotecas externas que implementem dicionários ordenados.

Exemplo de percurso de um map mantendo a ordem das chaves:

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}
    keys := []string{"a", "b", "c"} // ordem de inserção

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