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