Avatar ·

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.