Liste des noms de méthodes dans un type d'interface à l'aide de la réflexion d'exécution
Dans Go, les interfaces définissent des contrats pour les signatures de méthodes. Cependant, obtenir les noms des méthodes au sein d’une interface au moment de l’exécution peut s’avérer difficile. Cet article aborde ce problème en explorant une méthode pour répertorier les noms de méthodes à l'aide de la réflexion.
Problème :
Considérez le type d'interface suivant :
<code class="go">type FooService interface { Foo1(x int) int Foo2(x string) string }</code>
L'objectif est d'obtenir une liste de noms de méthodes comme ["Foo1", "Foo2"] dynamiquement en utilisant la réflexion d'exécution.
Solution :
Pour récupérer le noms de méthodes, nous pouvons utiliser les étapes suivantes :
Voici l'implémentation du code :
<code class="go">t := reflect.TypeOf((*FooService)(nil)).Elem() var s []string for i := 0; i < t.NumMethod(); i++ { s = append(s, t.Method(i).Name) }</code>
En utilisant la solution fournie, vous pouvez générer dynamiquement une liste de noms de méthodes pour n'importe quel type d'interface donné dans votre Go programmes.
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!