Cómo comprobar si un mapa contiene una clave en Go
Las tablas de hash están implementadas en Go
como tipo de datos de map
. Los Go Maps
pueden ser vistos como una colección de pares no ordenados de pares clave-valor. Los mapas son uno de los tipos de datos más poderosos y versátiles en Go
por su habilidad de realizar búsquedas rápidas, agregar y eliminar. Obtenemos dos valores de retorno cuando intentamos obtener el valor de clave
en un map
. Si el segundo valor es verdadero, entonces la llave
está presente en el map
.
Estructura del map
en Go
Sintaxis para map
var map_name map[KeyType]ValueType
donde KeyType
es cualquier tipo de datos
comparable y ValueType
es también cualquier tipo de datos
incluyendo el propio map
. El tipo de datos
de todas las teclas
de un map
debe ser el mismo. Del mismo modo, el tipo de datos
de todos los valores
de un map
también debe ser el mismo. Sin embargo, el tipo de datos
de las claves
y el tipo de datos
de los valores
pueden 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)
}
}
Producción :
Key:Jenna
Value: Sthapit
En el ejemplo anterior, map_1
tiene un tipo de datos cadena
tanto para las claves
como para los valores
. En map_1
, Sthapit
es el valor para la clave Jenna
.
Busca clave
en Go-map
Sintaxis para comprobar si un map
contiene una clave
en Go
first_value, second_value := map_name[key_name]
La declaración anterior devuelve dos valores, a saber, valor_primero
y valor_segundo
. El primer_valor
da el valor de clave
. Si el nombre_del_mapa
no contiene nombre_de_la_clave
, el valor_de_primer
será el valor por defecto valor cero. De manera similar, el valor_segundo
es un valor booleano que será true
si el nombre_de_la_clave
está presente en el map
. Podemos interpretar first_value
y second_value
de diferentes maneras para comprobar si el nombre_del_mapa
contiene nombre_de_clave
.
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)
}
Producción :
second_value for 1: true
second_value for 9: false
Aquí el valor_segundo
para 0
es true
ya que la clave 0
está presente en el nombre_del_mapa
. Sin embargo, el segundo valor
para 9
es false
ya que la clave 9
no está presente en el nombre_del_mapa
.
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")
}
}
Producción :
Giri is present in map. Value is: Alok
Sthapit is not present in map.
En este ejemplo, usamos la sentencia if
para comprobar si una clave
existe en el map
. Giri
es una clave
y Thapit
no es una clave
de nombre_del_mapa
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn