Äquivalenz von Karten in Golang testen
Beim Schreiben tabellengesteuerter Tests mit Karten kann die Bestimmung ihrer Äquivalenz eine Herausforderung sein. Ein Ansatz besteht darin, die Gleichheit der Längen und einzelner Schlüssel-Wert-Paare manuell zu prüfen, dies wiederholt sich jedoch für verschiedene Kartentypen.
Idiomatischer Ansatz
Die Go-Bibliothek bietet eine integrierte Lösung: reflektieren.DeepEqual. Diese Funktion verwendet zwei Interface{}-Argumente und vergleicht ihre Werte rekursiv. Bei Karten werden Längen, Schlüssel und Werte anhand der folgenden Schritte verglichen:
Beispielverwendung
Um zwei Karten, m1 und m2, zu vergleichen, verwenden Sie die Folgender Code:
import "reflect" eq := reflect.DeepEqual(m1, m2) if eq { fmt.Println("They're equal.") } else { fmt.Println("They're unequal.") }
Diese Lösung macht eine benutzerdefinierte Vergleichslogik überflüssig und funktioniert mit verschiedenen Kartentypen. Beachten Sie jedoch, dass bei falscher Übergabe auch Nicht-Kartenwerte verglichen werden.
Das obige ist der detaillierte Inhalt vonWie teste ich die Gleichwertigkeit von Karten in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!