Comparer des Maps
Fait partie de la section Logique & Flux du Journey GO de Coddy — leçon 29 sur 68.
Contrairement à de nombreux autres types de données en Go, les maps ont une limitation unique : elles ne peuvent pas être comparées directement à l'aide de l'opérateur ==. La seule exception à cette règle est la comparaison d'une map à nil.
Cela signifie que le code suivant ne compilera pas :
map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}
// Cela provoquera une erreur de compilation !
if map1 == map2 {
fmt.Println("Maps are equal")
}Cependant, vous pouvez comparer en toute sécurité une map à nil :
var myMap map[string]int
if myMap == nil {
fmt.Println("Map is nil")
}Lorsque vous devez vérifier si deux maps contiennent les mêmes paires clé-valeur, vous devez écrire une fonction personnalisée qui parcourt les deux maps et compare chaque élément individuellement. Cette approche vous donne un contrôle total sur la logique de comparaison, vous permettant de définir exactement ce que signifie « égal » pour votre cas d'utilisation spécifique.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Aide-mémoire
Les maps ne peuvent pas être comparées directement à l'aide de l'opérateur ==, sauf lors de la comparaison avec nil :
// Cela ne compilera PAS
map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}
if map1 == map2 { // Erreur de compilation !
fmt.Println("Maps are equal")
}Vous pouvez comparer une map à nil :
var myMap map[string]int
if myMap == nil {
fmt.Println("Map is nil")
}Pour vérifier si deux maps sont égales, vous devez écrire une fonction personnalisée qui parcourt les deux maps et compare chaque élément individuellement.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Structures de contrôle avancées
Switch avec `fallthrough`Sortir de boucles imbriquéesContinuer une boucle spécifiqueL'instruction `goto`Récapitulatif - Contrôle de boucle avancé4Projet : Liste de tâches simple
Configuration du projetAjouter une tâche2Structures et Méthodes
Définir des méthodes sur des structuresReceveurs par valeurReceveurs par pointeurChoisir les receveursMéthodes vs FonctionsRécapitulatif - Comportement des structures5Les Maps en profondeur
Maps de StructsPointeurs comme valeurs de MapTester les Maps NilComparer des MapsRécapitulatif - Compteur de fréquence de mots3Interfaces (Les bases)
Qu'est-ce qu'une Interface ?Définir une InterfaceImplémenter une InterfaceUtiliser les types d'InterfaceInterface videAssertions de typeType SwitchRécapitulatif - Formes et comportements