Avatar ·

Comment vérifier si une map contient une clé spécifique en Go ?

Bonjour à tous ! Je viens de commencer à apprendre Go, et j'ai un problème pour vérifier la présence d'une clé dans une map. En Python, j'avais l'habitude d'écrire simplement `if key in dict:`, mais en Go, cette construction n'existe pas. Supposons que j'ai une map d'utilisateurs : ```go users := map[int]string{ 1: "Alice", 2: "Bob", 3: "Charlie", } ``` Je dois vérifier si un utilisateur avec l'ID = 4 existe. J'ai essayé ce code : ```go if users[4] != "" { fmt.Println("Utilisateur trouvé !") } ``` Mais cela ne fonctionne pas si la valeur de la clé est une chaîne vide. Par exemple, si j'ajoute `4: ""`, mon code ne fera pas la différence entre l'absence de la clé et une valeur vide. Il en va de même pour les maps numériques : si la valeur est 0, la vérification échouera également. Je sais qu'en Go, lorsqu'on accède à une clé inexistante, la valeur zéro du type est retournée. Mais comment vérifier correctement si une clé existe dans une map, sans risque d'obtenir un résultat faux positif ou faux négatif ? Je suis particulièrement intéressé par le cas où la valeur zéro (0, "", false) est une valeur valide.