Comment vérifier si une carte contient une clé dans Go

  1. Structure de la map dans le Go
  2. Vérifiez la présence de la clé dans Go-map

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 clé 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 clé existe dans la map. Giri est une clé et Sthapit n’est pas une clé de map_name.

Article connexe - Go Map

  • Comment itérer une carte entière dans Go