Comment vérifier si une carte contient une clé dans Go
Les tables de hachage sont implémentées dans Go
comme type de données map
. Les Go Maps peuvent être considérées comme une collection de paires non ordonnées de paires clé-valeur. Les Maps
sont l’un des types de données les plus puissants et les plus polyvalents de Go
en raison de leur capacité à effectuer des recherches, des ajouts et des suppressions rapides. Nous obtenons deux valeurs de retour lorsque nous essayons d’obtenir la valeur de la key
dans une map
. Si la seconde valeur est vraie, alors key
est présent sur la map
.
Structure de la map
dans le Go
Syntaxe pour map
var map_name map[KeyType]ValueType
KeyType
est tout datatype
comparable et ValueType
est également tout type de données
, y compris la map
elle-même. Le “type de données” de toutes les clés
d’une map
doit être le même. De même, le type de données
pour toutes les valeurs
d’une carte doit être identique. Cependant, le type de données
des key
et le type de données
des valeurs
peuvent être différents.
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)
}
}
Production:
Key:Jenna
Value: Sthapit
Dans l’exemple ci-dessus, map_1
a un type de données string
pour les clés
et les valeurs
. Dans map_1
, Sthapit
est la valeur pour la clé Jenna
.
Vérifiez la présence de la key
dans Go-map
Syntaxe pour vérifier si une map
contient une key
dans Go
first_value, second_value := map_name[key_name]
L’instruction ci-dessus retourne deux valeurs, à savoir first_value
et second_value
. La first_value
donne la valeur de key
. Si le nom de la carte ne contient pas le nom de la clé, la première valeur sera la valeur par défaut valeur zéro. De même, second_value
est une valeur booléenne qui sera true
si le key_name
est présent dans la map
. Nous pouvons interpréter la first_value
et la second_value
de différentes manières pour vérifier si le map_name
contient le 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)
}
Production:
second_value for 1: true
second_value for 9: false
Ici, la second_value
pour 0
est true
car la clé 0
est présente dans le map_name
. Cependant, la second_value
pour 9
est false
car la clé 9
n’est pas présente dans le 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")
}
}
Production:
Giri is present in map. Value is: Alok
Sthapit is not present in map.
Dans cet exemple, nous avons utilisé l’instruction if
pour vérifier si une key
existe dans la map
. Giri est une key
et Sthapit n’est pas une key
de map_name
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn