Vergleichen von Karten in Golang
In der Go-Sprache ist eine Karte eine leistungsstarke, geniale und vielseitige Datenstruktur. Golang Maps ist eine Sammlung ungeordneter Schlüsselwertpaare. Es ist weit verbreitet, da es schnelle Suchen und Werte bietet, die mit Hilfe von Schlüsseln abgerufen, aktualisiert oder gelöscht werden können.
In der Go-Sprache können Sie zwei Karten miteinander vergleichen, indem Sie die DeepEqual()- Funktion verwenden, die vom Reflect-Paket bereitgestellt wird. Diese Funktion gibt true zurück, wenn beide Maps die folgenden Bedingungen erfüllen:
- Beide Karten sind null oder nicht null.
- Beide Karten haben die gleiche Länge.
- Beide Maps sind das gleiche Map-Objekt oder ihre entsprechenden Keys werden auf tief gleiche Werte abgebildet.
Andernfalls gibt diese Funktion false zurück.
Syntax:
reflect.DeepEqual(a, b)
Hier sind a und b maps , und diese Funktion prüft, ob a und b absolut gleich sind oder nicht, und gibt dann ein Ergebnis vom booleschen Typ zurück.
Beispiel:
Go
// Go program to illustrate // how to compare two maps package main import ( "fmt" "reflect" ) func main() { map_1 := map[int]string{ 200: "Anita", 201: "Neha", 203: "Suman", 204: "Robin", 205: "Rohit", } map_2 := map[int]string{ 200: "Anita", 201: "Neha", 203: "Suman", 204: "Robin", 205: "Rohit", 206: "Sumit", } map_3 := map[int]string{ 200: "Anita", 201: "Neha", 203: "Suman", 204: "Robin", 205: "Rohit", } map_4 := map[string]int{ "Anita": 200, "Neha": 201, "Suman": 203, "Robin": 204, "Rohit": 205, } // Comparing maps // Using DeepEqual() function res1 := reflect.DeepEqual(map_1, map_2) res2 := reflect.DeepEqual(map_1, map_3) res3 := reflect.DeepEqual(map_1, map_4) res4 := reflect.DeepEqual(map_2, map_3) res5 := reflect.DeepEqual(map_3, map_4) res6 := reflect.DeepEqual(map_4, map_4) res7 := reflect.DeepEqual(map_2, map_4) // Displaying result fmt.Println("Is Map 1 is equal to Map 2: ", res1) fmt.Println("Is Map 1 is equal to Map 3: ", res2) fmt.Println("Is Map 1 is equal to Map 4: ", res3) fmt.Println("Is Map 2 is equal to Map 3: ", res4) fmt.Println("Is Map 3 is equal to Map 4: ", res5) fmt.Println("Is Map 4 is equal to Map 4: ", res6) fmt.Println("Is Map 2 is equal to Map 4: ", res7) }
Ausgabe:
Is Map 1 is equal to Map 2: false Is Map 1 is equal to Map 3: true Is Map 1 is equal to Map 4: false Is Map 2 is equal to Map 3: false Is Map 3 is equal to Map 4: false Is Map 4 is equal to Map 4: true Is Map 2 is equal to Map 4: false