Heim > Artikel > Backend-Entwicklung > Wie vergleiche ich Karten in Go zuverlässig?
Karten in Go vergleichen
Beim Schreiben tabellengesteuerter Tests in Go müssen Entwickler häufig Karten vergleichen. Ein gängiger Ansatz besteht darin, Karten in Zeichenfolgen zu konvertieren und die Zeichenfolgen dann zu vergleichen. Dabei wird davon ausgegangen, dass äquivalente Karten dieselben Zeichenfolgendarstellungen aufweisen. Dieser Ansatz weist jedoch Einschränkungen auf.
Reflect-basierter Vergleich mit Reflect.DeepEqual
Eine zuverlässigere und idiomatischere Möglichkeit, Karten zu vergleichen, ist die Verwendung des Reflection-Pakets von Go. Mit der Funktion „reflect.DeepEqual“ können zwei Werte, einschließlich Karten, gründlich verglichen werden. Es stellt sicher, dass:
Beispielcode für den Kartenvergleich
Betrachten Sie den folgenden Beispielcode, um Karten mit Reflect.DeepEqual zu vergleichen:
import ( "fmt" "reflect" ) func main() { m1 := map[string]int{"foo": 1, "bar": 2} m2 := map[string]int{"foo": 1, "bar": 2} eq := reflect.DeepEqual(m1, m2) if eq { fmt.Println("The maps are equal.") } else { fmt.Println("The maps are not equal.") } }
Vorteile der Verwendung von „reflect.DeepEqual“
Der Vorteil der Verwendung von „reflect.DeepEqual“ besteht darin, dass es eine robuste und generische Möglichkeit bietet, Karten jeglicher Art zu vergleichen (z. B. „map[string]int“, „map [string]string usw.). Es bewältigt die Komplexität des Kartenvergleichs intern und macht fehleranfällige benutzerdefinierte Schleifen überflüssig.
Das obige ist der detaillierte Inhalt vonWie vergleiche ich Karten in Go zuverlässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!