Comparando mapas em Golang
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
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva