Sobes.tech
Junior — Middle

La structure de données Map garantit-elle la conservation de l'ordre d'insertion des éléments?

sobes.tech IA

Réponse de l'IA

Dans le langage Go, la structure de données map ne garantit pas l'ordre d'insertion des éléments. L'itération sur un map se fait dans un ordre aléatoire, qui peut changer à chaque parcours.

Si vous souhaitez conserver l'ordre d'insertion, vous devez utiliser une structure supplémentaire, comme un slice pour stocker les clés dans l'ordre souhaité, ou utiliser des bibliothèques tierces qui implémentent des dictionnaires ordonnés.

Exemple d'itération sur un map en conservant l'ordre des clés :

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}
    keys := []string{"a", "b", "c"} // ordre d'insertion

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