Récupération du nom du paramètre dans Go
Considérez la méthode Go suivante :
func (t *T) TMethod(data *testData) (interface{}, *error) { ... }
Si vous désirez déterminer le nom du paramètre (c'est-à-dire data), tenter d'utiliser le code suivant entraînera la récupération de la structure name:
reflect.ValueOf(T).MethodByName("TMethod").Type.In(0).Elem().Name()
Malheureusement, obtenir le nom d'un paramètre de fonction ou de méthode n'est pas réalisable dans Go. Cela est principalement dû au fait que les noms des paramètres sont sans conséquence lors de l'appel de telles fonctions. Au lieu de cela, l’accent est mis sur leurs types et leur ordre. De plus, il est permis de définir des fonctions ou des méthodes sans attribuer de noms à leurs paramètres, comme indiqué ci-dessous :
func NamelessParams(int, string) {}
Pour des informations plus détaillées sur cet aspect, veuillez vous référer à la discussion sur Les arguments sans nom sont-ils une chose dans Go ?
Alternativement, si vous souhaitez établir un cadre permettant la transmission de valeurs à des paramètres portant des noms désignés (par exemple, mapper les paramètres de l'API aux paramètres de la fonction/méthode Go), envisagez d'utiliser un structure ou carte. En effet, les structures et les cartes permettent respectivement de récupérer des champs nommés et des clés via des méthodes telles que Value.FieldByName() et Type.FieldByName().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!