Menu
Coddy logo textTech

Vérification de l'existence d'une clé

Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 89 sur 109.

En Go, vous pouvez vérifier si une clé existe dans une map en utilisant la forme d'affectation à deux valeurs. C'est important car l'accès à une clé inexistante renvoie la valeur zéro, ce qui pourrait être trompeur.

Créez une map de codes de pays :

countries := map[string]string{
    "US": "United States",
    "CA": "Canada",
}

// Vérifiez si "UK" existe dans la map
value, exists := countries["UK"]
fmt.Println("Value:", value, "Exists:", exists)

Résultat :

Value:  Exists: false

Le booléen exists vous indique si la clé a été trouvée. Utilisez ceci dans les conditions :

if _, exists := countries["US"]; exists {
    fmt.Println("US is in the map")
}

Résultat :

US is in the map
challenge icon

Défi

Débutant

Dans ce défi, vous allez vous entraîner à vérifier si une clé existe dans une map. Vous avez une map de notes d'étudiants, et vous devez vérifier si la note d'un étudiant spécifique existe dans la map.

Complétez le code pour vérifier si l'étudiant 'Emma' existe dans la map grades, et affichez un message approprié.

Aide-mémoire

Vérifiez si une clé existe dans une map en utilisant l'affectation à deux valeurs :

value, exists := mapName["key"]

La deuxième valeur est un booléen indiquant si la clé a été trouvée :

countries := map[string]string{
    "US": "United States",
    "CA": "Canada",
}

value, exists := countries["UK"]
fmt.Println("Value:", value, "Exists:", exists)
// Sortie : Value:  Exists: false

Utilisez-le dans des conditions en ignorant la valeur avec _ :

if _, exists := countries["US"]; exists {
    fmt.Println("US is in the map")
}

Essayez vous-même

package main

import "fmt"

func main() {
	// Carte des notes des étudiants
	grades := map[string]int{
		"John":  85,
		"Sarah": 92,
		"Mike":  78,
		"Lisa":  95,
	}

	// Étudiant à vérifier
	studentToCheck := "Emma"

	// À FAIRE : Vérifier si studentToCheck existe dans la carte des notes
	// et stocker le résultat dans une variable nommée 'exists'
	// Conseil : Utilisez l'idiome comma-ok


	// Afficher le résultat
	if exists {
		fmt.Printf("%s's grade exists in the map\n", studentToCheck)
	} else {
		fmt.Printf("%s's grade does not exist in the map\n", studentToCheck)
	}
}
quiz iconTestez-vous

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