Menu
Coddy logo textTech

Maps vergleichen

Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy — Lektion 29 von 68.

Im Gegensatz zu vielen anderen Datentypen in Go haben Maps eine einzigartige Einschränkung: Sie können nicht direkt mit dem ==-Operator verglichen werden. Die einzige Ausnahme von dieser Regel ist der Vergleich einer Map mit nil.

Das bedeutet, dass Code wie dieser nicht kompiliert wird:

map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}

// Dies wird einen Kompilierfehler verursachen!
if map1 == map2 {
    fmt.Println("Maps are equal")
}

Sie können eine Map jedoch sicher mit nil vergleichen:

var myMap map[string]int
if myMap == nil {
    fmt.Println("Map is nil")
}

Wenn Sie prüfen müssen, ob zwei Maps dieselben Schlüssel-Wert-Paare enthalten, müssen Sie eine benutzerdefinierte Funktion schreiben, die beide Maps durchläuft und jedes Element einzeln vergleicht. Dieser Ansatz gibt Ihnen die vollständige Kontrolle über die Vergleichslogik, sodass Sie genau definieren können, was „gleich“ für Ihren spezifischen Anwendungsfall bedeutet.

quiz iconTeste dich selbst

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

quiz iconTeste dich selbst

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

quiz iconTeste dich selbst

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

Spickzettel

Maps können nicht direkt mit dem ==-Operator verglichen werden, außer beim Vergleich mit nil:

// Dies wird NICHT kompiliert
map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}
if map1 == map2 { // Kompilierfehler!
    fmt.Println("Maps are equal")
}

Sie können eine Map mit nil vergleichen:

var myMap map[string]int
if myMap == nil {
    fmt.Println("Map is nil")
}

Um zu prüfen, ob zwei Maps gleich sind, müssen Sie eine benutzerdefinierte Funktion schreiben, die beide Maps durchläuft und jedes Element einzeln vergleicht.

Probier es selbst

Diese Lektion enthält keine Programmieraufgabe.

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 Logik & Ablauf