Sobes.tech
Junior — Middle

La séquence des clés sera-t-elle conservée si on parcourt la Map plusieurs fois?

sobes.tech IA

Réponse de l'IA

En Go, le type map ne garantit pas la conservation de l'ordre des clés lors de l'itération. À chaque passage sur un map, l'ordre de parcours des clés peut être différent, car la représentation interne de la table de hachage n'est pas ordonnée.

Si vous souhaitez conserver un ordre, par exemple l'ordre d'insertion, vous devriez utiliser une structure de données supplémentaire, comme un slice de clés, et l'itérer.

Exemple :

m := map[string]int{"a": 1, "b": 2, "c": 3}
keys := []string{"a", "b", "c"}

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

Ainsi, la séquence d'itération sera stable et prévisible.