Na linguagem Go, um mapa é uma estrutura de dados poderosa, engenhosa e versátil. Golang Maps é uma coleção de pares não ordenados de valores-chave. É amplamente utilizado porque fornece pesquisas e valores rápidos que podem ser recuperados, atualizados ou excluídos com a ajuda de chaves. 
Na linguagem Go, você tem permissão para comparar dois mapas entre si usando a função DeepEqual() fornecida pelo pacote reflet . Esta função retorna verdadeiro se ambos os mapas satisfazem as seguintes condições:

  • Ambos os mapas são nulos ou não nulos.
  • Ambos os mapas têm o mesmo comprimento.
  • Ambos os mapas são o mesmo objeto de mapa ou suas chaves correspondentes mapeiam para valores profundamente iguais.

Caso contrário, esta função retorna falso.

Sintaxe: 

reflect.DeepEqual(a, b)

Aqui, aeb são mapas , e essa função verifica se aeb são profundamente iguais ou não e, em seguida, retorna o resultado do tipo booleano. 

Exemplo: 

// 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)
 
}

Saída:

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