Menu
Coddy logo textTech

Überprüfen der Existenz von Schlüsseln

Teil des Abschnitts Grundlagen der GO-Journey von Coddy — Lektion 89 von 109.

In Go können Sie mithilfe der Zuweisungsform mit zwei Werten prüfen, ob ein Schlüssel in einer Map existiert. Dies ist wichtig, da der Zugriff auf einen nicht existierenden Schlüssel den Nullwert zurückgibt, was irreführend sein kann.

Erstellen Sie eine Map mit Ländercodes:

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

// Prüfen, ob „UK“ in der Map existiert
value, exists := countries["UK"]
fmt.Println("Value:", value, "Exists:", exists)

Ergebnis:

Value:  Exists: false

Der Boolean-Wert exists gibt an, ob der Schlüssel gefunden wurde. Verwenden Sie dies in Bedingungen:

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

Ergebnis:

US is in the map
challenge icon

Aufgabe

Anfänger

In dieser Challenge übst du, wie man überprüft, ob ein Schlüssel in einer Map existiert. Du hast eine Map mit Schülernoten und musst prüfen, ob die Note eines bestimmten Schülers in der Map vorhanden ist.

Vervollständige den Code, um zu prüfen, ob der Schüler 'Emma' in der grades Map existiert, und gib eine entsprechende Nachricht aus.

Spickzettel

Prüfen Sie mit der Zwei-Werte-Zuweisung, ob ein Schlüssel in einer Map existiert:

value, exists := mapName["key"]

Der zweite Wert ist ein Boolean, der angibt, ob der Schlüssel gefunden wurde:

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

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

Verwendung in Bedingungen, indem der Wert mit _ ignoriert wird:

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

Probier es selbst

package main

import "fmt"

func main() {
	// Map der Studentnoten
	grades := map[string]int{
		"John":  85,
		"Sarah": 92,
		"Mike":  78,
		"Lisa":  95,
	}

	// Zu prüfender Student
	studentToCheck := "Emma"

	// TODO: Prüfen, ob studentToCheck in der grades-Map existiert
	// und das Ergebnis in einer Variable namens 'exists' speichern
	// Hinweis: Verwende das Comma-Ok-Idiom


	// Ergebnis ausgeben
	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 iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen