Comprendre l'ordre des valeurs-clés dans Go Maps
Dans Go, les cartes sont des collections non ordonnées de paires clé-valeur. Lors d'une itération sur une carte à l'aide d'une boucle de plage, l'ordre dans lequel les clés et les valeurs sont renvoyées n'est pas prévisible. Ce comportement découle de l'implémentation interne des cartes, qui donne la priorité aux performances plutôt qu'à la préservation de l'ordre.
Raison de la sortie dans le désordre
Dans votre exemple, les mois de la carte contient des paires clé-valeur où les clés sont des entiers représentant les numéros de mois et les valeurs sont les noms de mois correspondants. Lorsque vous parcourez la carte à l'aide de la boucle de plage, le runtime Go imprime les paires clé-valeur en fonction de la façon dont la carte est organisée en mémoire. Cette organisation peut cependant varier d'une exécution à l'autre, entraînant une sortie dans le désordre.
Préservation de l'ordre
Si vous avez besoin de la valeur-clé paires à imprimer dans un ordre précis, vous avez deux options :
1. Utiliser un tableau
Un tableau est une structure de données qui maintient un ordre fixe de ses éléments. En utilisant un tableau de taille connue, vous pouvez définir explicitement l'ordre des paires clé-valeur. Voici un exemple de code :
var months [12]string months[0] = "January" months[1] = "Fabruary" // ... Populate the rest of the array
2. Trier les clés de la carte
Vous pouvez également trier les clés de la carte avant de parcourir la carte. Cela garantit que les paires clé-valeur sont imprimées dans l’ordre souhaité. Voici un exemple de code :
keys := make([]int, 0, len(months)) for key := range months { keys = append(keys, key) } sort.Ints(keys) for _, key := range keys { fmt.Println(key, "-", months[key]) }
En utilisant l'une ou l'autre de ces approches, vous pouvez contrôler l'ordre de sortie de la carte des mois.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!