Sobes.tech
Senior

Le map garantit-il l'ordre de lecture des données?

sobes.tech IA

Réponse de l'IA

En Go, le type intégré map ne garantit pas l'ordre de parcours des éléments lors de la lecture. L'itération sur une map se fait dans un ordre pseudo-aléatoire, qui peut changer à chaque exécution du programme. Si une traversée ordonnée est nécessaire, il faut stocker les clés dans une tranche et les trier avant l'itération.

Exemple de parcours d'une map avec tri des clés:

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

// Obtenir les clés
keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}

// Trier les clés
sort.Strings(keys)

// Itérer sur les clés triées
for _, k := range keys {
    fmt.Println(k, m[k])
}