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 besondere 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}
// Das führt zu einem Kompilierungsfehler!
if map1 == map2 {
fmt.Println("Maps are equal")
}Du kannst eine Map jedoch problemlos mit nil vergleichen:
var myMap map[string]int
if myMap == nil {
fmt.Println("Map is nil")
}Wenn du überprüfen musst, ob zwei Maps dieselben Schlüssel-Wert-Paare enthalten, musst du eine benutzerdefinierte Funktion schreiben, die beide Maps durchläuft und jedes Element einzeln vergleicht. Dieser Ansatz gibt dir die volle Kontrolle über die Vergleichslogik und ermöglicht dir, genau festzulegen, was „gleich“ für deinen konkreten Anwendungsfall bedeutet.
Probier es selbst
Diese Lektion enthält keine Programmieraufgabe.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittener Kontrollfluss
Switch mit `fallthrough`Abbrechen von verschachtelten SchleifenFortsetzen einer bestimmten SchleifeDie `goto`-AnweisungZusammenfassung – Fortgeschrittene Schleifensteuerung4Projekt: Einfache Aufgabenliste
Projekt-SetupEine Aufgabe hinzufügen2Structs und Methoden
Methoden für Structs definierenValue ReceiverPointer ReceiverReceiver auswählenMethoden vs. FunktionenZusammenfassung – Struct-Verhalten5Maps im Detail
Maps von StructsPointer als Map-WertePrüfen auf Nil-MapsMaps vergleichenZusammenfassung – Wortfrequenz-Zähler8Projekt: Einfache Bestandsverwaltung
ProjektübersichtLagerbestand prüfen11Abschlussherausforderungen
Einfache KontaktlisteEinfacher Zahlen-ValidatorSammler für eindeutige Elemente3Interfaces (Die Grundlagen)
Was ist ein Interface?Ein Interface definierenEin Interface implementierenInterface-Typen verwendenLeeres InterfaceType AssertionsType SwitchZusammenfassung – Formen und VerhaltenÜbe selbstständig: Online-Go-Compiler