Itération sur les Maps
Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 92 sur 109.
Le mot-clé range vous permet d'itérer sur toutes les paires clé-valeur d'une map. Il retourne à la fois la clé et la valeur pour chaque entrée.
Créez une map de l'inventaire des fruits :
inventory := map[string]int{
"apples": 5,
"bananas": 8,
"oranges": 12,
}
for fruit, quantity := range inventory {
fmt.Printf("%s: %d\n", fruit, quantity)
}Le résultat affiche chaque paire clé-valeur :
apples: 5
bananas: 8
oranges: 12Si vous n'avez besoin que des clés, vous pouvez omettre la deuxième variable :
for fruit := range inventory {
fmt.Println(fruit)
}Défi
DébutantDans ce défi, vous allez vous entraîner à itérer sur une map en utilisant le mot-clé range en Go. Une map des notes des étudiants a été créée pour vous. Votre tâche consiste à parcourir la map et à afficher le nom de chaque étudiant ainsi que sa note.
Complétez le code pour parcourir la map studentGrades et affichez le nom et la note de chaque étudiant au format : Student: [name], Grade: [grade]
Aide-mémoire
Utilisez range pour itérer sur les paires clé-valeur dans une map :
inventory := map[string]int{
"apples": 5,
"bananas": 8,
"oranges": 12,
}
for fruit, quantity := range inventory {
fmt.Printf("%s: %d\n", fruit, quantity)
}Pour itérer uniquement sur les clés, omettez la seconde variable :
for fruit := range inventory {
fmt.Println(fruit)
}Essayez vous-même
package main
import (
"fmt"
"sort"
)
func main() {
// Une carte des notes des étudiants
studentGrades := map[string]string{
"Alice": "A",
"Bob": "B",
"Charlie": "B+",
"David": "A-",
"Eva": "C",
}
// Collecter les noms des étudiants (clés) dans une tranche pour les trier
var names []string
for name := range studentGrades {
names = append(names, name)
}
sort.Strings(names)
// À FAIRE : Parcourir la liste triée des noms d'étudiants
// et afficher le nom et la note de chaque étudiant au format :
// "Étudiant : [nom], Note : [note]"
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs de comparaison et logiques
Opérateurs de comparaison - Partie 1Opérateurs de comparaison - Partie 2Opérateur logique ANDOpérateur logique OROpérateur logique NOTBases de la priorité des opérateursRécapitulatif - Effectuer des comparaisons7Structures de contrôle : Les boucles
Explication de la boucle `for`Boucle For - Les basesBoucle For - Condition uniquementLe mot-clé `break`Le mot-clé `continue`Boucles imbriquéesRécapitulatif - Répéter des actions2Variables et types de données de base
Qu'est-ce qu'une variableInférence de type avec `:=` Entiers (int)Nombres à virgule flottanteBooléensChaînes de caractères (Strings)Valeurs zéroConstantesConventions de nommageRécapitulatif - Variables et types5Entrées/Sorties de base
Sortie formatéeVerbes de formatageAffichage des typesSaisie utilisateur de baseRécapitulatif - Entrées et Sorties8Fonctions
Comprendre les fonctionsDéclarer une fonctionAppeler des fonctionsParamètres de fonctionRetourner une valeur uniqueRetourner plusieurs valeursValeurs de retour nomméesBases de la portée des fonctionsRécapitulatif - Créer du code réutilisable11Types composites : Slices
Introduction aux SlicesDéclaration de littéraux de SlicesCréation de Slices avec `make`Longueur vs Capacité des SlicesAccès aux éléments d'un SliceAjout d'élémentsDécoupage de Slices/Tableaux existantsItération sur les SlicesCopie de SlicesRécapitulatif - Listes dynamiques3Opérateurs de base
Opérateurs arithmétiquesOpérateur de divisionL'opérateur moduloOpérateur d'affectationOpérateurs d'affectation augmentéeIncrémentation et décrémentationRécapitulatif - Calculs6Structure de contrôle : Les conditionnelles
L'instruction `if`Le mot-clé `else`Le mot-clé `else if`Masquage de variable dans `if`Initialisation des variablesL'instruction `switch``switch` avec expressions`switch` sans expressionLe mot-clé `fallthrough`Récapitulatif - Prendre des décisions9Pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de variables pointeursL'opérateur d'adresseDéréférencement de pointeursUtiliser des pointeurs dans les fonctionsPointeurs NilRécapitulatif - Comprendre les pointeurs12Types composites : Maps
Introduction aux MapsDéclaration de littéraux de MapCréation de Maps avec `make`Ajout et mise à jour de paires clé-valeurAccès aux valeurs d'une MapVérification de l'existence d'une cléSuppression d'entrées de MapTaille d'une MapItération sur les MapsRécapitulatif - Stockage clé-valeur