Comment vérifier si une map contient une clé en Go ?
Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai un problème avec les maps. Supposons que je crée une map qui stocke les utilisateurs par leur ID :
```go
users := map[int]string{
1: "Alice",
2: "Bob",
}
```
Je dois vérifier si un utilisateur avec l'ID, par exemple 3, existe. J'ai essayé de faire ceci :
```go
if users[3] != "" {
fmt.Println("User found")
} else {
fmt.Println("User not found")
}
```
Mais cela semble incorrect, car si la valeur est vide (par exemple, si l'utilisateur a un nom vide), la vérification échouera. De plus, j'ai entendu dire qu'en Go, lors de l'accès à une clé inexistante, la valeur zéro (zero value) pour le type de valeur est retournée. Pour les chaînes, c'est une chaîne vide, pour les nombres — 0, pour les booléens — false. Mais comment distinguer l'absence d'une clé d'une vraie valeur zéro ? Existe-t-il une manière idiomatique de vérifier la présence d'une clé dans une map ? J'ai lu que dans d'autres langages (par exemple, en Python), il y a l'opérateur `in`, mais je n'ai pas trouvé cela en Go.
No answers yet.
Connectez-vous pour laisser une réponse