11
votes

Signification du soulignement dans un paramètre de fonction Go

est venu accrocher la fonction ci-dessous ici . J'ai remarqué que le dernier paramètre est identifié avec _ . Quelle est l'intention de ce modèle? XXX

go

4 Réponses :


6
votes

_ est le identifiant vide . Il est dans la signature de montrer que la valeur n'utilise pas, la signature correspondra toujours aux méthodes de l'interface.


0 commentaires

14
votes

Cela signifie "ignorer ce paramètre", la raison pour laquelle ils ont toujours besoin du dernier paramètre ici sont parce qu'ils veulent le transmettre comme type à la fonction obtenez , qui a la signature:

Type Handink Func (http.Responsewriter, * http.request, paramètres)

Si vous laissez simplement passer quelque chose comme index Func (w http.responsewriter, r * http.request) Il ne sera pas traité comme type . .


0 commentaires

0
votes

Comme d'autres ont souligné, c'est un Identifiant vide . Par exemple, considérons l'exemple suivant:

func main() {
     nums := []int{5, 3, 4}
     max := nums[0]
     for _, num := range nums {
         if num > max {
            max = num
        }
    }
    fmt.Println("max:", max)
}


1 commentaires

La question de l'OP concerne le paramètre de fonction. Je ne pense pas que vous répondiez à la question.



1
votes

Utiliser "_" à la place d'un nom de paramètre remplit les obligations d'une "fonction de base en tant que paramètre" sans obtenir un avertissement d'un paramètre inutilisé. Dans votre cas, je pense que le compilateur est dit d'ignorer toutes les données "post" entrantes, ce qui réduit donc la demande à la fonctionnalité d'un "get".


0 commentaires