Cela évite d'avoir à déclarer toutes les variables pour les valeurs de retour.
C'est ce qu'on appelle l' identifiant vierge .
Un péché:
_, y, _ := coord(p) // coord() returns three values; only interested in y coordinate
(l' autre ' _
' cas d'utilisation est pour l'importation )
Puisqu'il ignore la valeur de retour, il est utile lorsque vous souhaitez vérifier une seule des valeurs renvoyées, comme dans " Comment tester l'existence d'une clé dans une carte? " Affiché dans " Effective Go, map ":
_, present := timeZone[tz]
Pour tester la présence dans la carte sans vous soucier de la valeur réelle, vous pouvez utiliser l'identifiant vide, un simple trait de soulignement ( _
).
L'identificateur vide peut être attribué ou déclaré avec n'importe quelle valeur de n'importe quel type, la valeur étant rejetée sans danger.
Pour tester la présence dans une carte, utilisez l'identificateur vide à la place de la variable habituelle de la valeur.
Comme l' ajoute Jsor dans les commentaires :
"la norme généralement acceptée" consiste à appeler les variables de test d'appartenance "ok" (idem pour vérifier si une lecture de canal était valide ou non)
Cela vous permet de le combiner avec test:
if _, err := os.Stat(path); os.IsNotExist(err) {
fmt.Printf("%s does not exist\n", path)
}
Vous le trouverez également en boucle:
Si vous n'avez besoin que du deuxième élément de la plage (la valeur), utilisez l'identificateur vide, un trait de soulignement, pour ignorer le premier:
sum := 0
for _, value := range array {
sum += value
}