Como verificar se um mapa contém uma chave em Go
As tabelas de hash são implementadas em Go
como tipo de dados map
. Go Maps pode ser visto como uma coleção de pares não ordenados de pares de valores de chave. Os map
são um dos tipos de dados mais poderosos e versáteis em Go
por causa de sua capacidade de realizar buscas rápidas, adições e exclusões. Recebemos dois valores de retorno quando tentamos obter o valor de chave
em um map
. Se o segundo valor for verdadeiro, então a chave
está presente no map
.
Estrutura do map
em Go
Sintaxe para map
var map_name map[KeyType]ValueType
Onde, KeyType
é qualquer datype
comparável e ValueType
é também qualquer datype
incluindo o próprio map
. O datype
para todas as chaves
de um map
deve ser o mesmo. Da mesma forma, o datype
para todos os valores
em um map
também deve ser o mesmo. Entretanto, o tipo de dados
das chaves
e o tipo de dados
dos valores
podem ser diferentes.
package main
import "fmt"
func main() {
map_1 := map[string]string{
"Jenna": "Sthapit",
}
for k, v := range map_1 {
fmt.Printf("Key:%v\nValue: %s\n", k, v)
}
}
Resultado:
Key:Jenna
Value: Sthapit
No exemplo acima, o map_1
tem string
datatype para ambas as chaves
e valores
. Em map_1
, Sthapit
é o valor para a chave Jenna
.
Verificar por key
em Go-map
Sintaxe para verificar se um map
contém uma chave
em Go
first_value, second_value := map_name[key_name]
A declaração acima retorna dois valores: first_value
e second_value
. O primeiro_valor
dá o valor de chave
. Se o map_name
não contém key_name
, o first_value
será o valor padrão valor zero. Da mesma forma, second_value
é um valor booleano que será true
se o key_name
estiver presente no map
. Podemos interpretar first_value
e second_value
de diferentes maneiras para verificar se o key_name
contém key_name
.
package main
import "fmt"
func main() {
map_name := map[int]string{
0: "Alok",
1: "Reman",
2: "Riken",
3: "Rudra",
}
_, second_value_1 := map_name[1]
fmt.Printf("second_value for 1: %t\n", second_value_1)
_, second_value_9 := map_name[9]
fmt.Printf("second_value for 9: %t\n", second_value_9)
}
Resultado:
second_value for 1: true
second_value for 9: false
Aqui o second_value
de 0
é true
, pois a chave 0
está presente no map_name
. Entretanto, o second_value
de 9
é false
pois a chave 9
não está presente no map_name
.
package main
import "fmt"
func main() {
map_name := map[string]string{
"Giri": "Alok",
"Nembang": "Reman",
"Maharjan": "Riken",
"Jha": "Rudra",
}
if first_value, second_value := map_name["Giri"]; second_value {
fmt.Printf("Giri is present in map. Value is: %s\n", first_value)
} else {
fmt.Printf("Giri is not present in map.\n")
}
if first_value, second_value := map_name["Sthapit"]; second_value {
fmt.Printf("Sthapit is present in map. Value is: %s\n", first_value)
} else {
fmt.Printf("Sthapit is not present in map. \n")
}
}
Resultado:
Giri is present in map. Value is: Alok
Sthapit is not present in map.
Neste exemplo, utilizamos a declaração if
para verificar se existe uma chave
no map
. O Giri
é uma chave
e o Sthapit
não é uma chave
de map_name
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn