Maison > Article > développement back-end > Comment récupérer une liste de noms de méthodes à partir d’une interface dans Go à l’aide de la réflexion ?
Obtention d'une liste de noms de méthodes à partir d'une interface
Dans Go, la réflexion permet d'inspecter et de manipuler la structure interne d'un programme au moment de l'exécution . Cela inclut la possibilité d'accéder à des informations sur un type d'interface, telles que ses noms de méthodes.
Considérez l'interface suivante :
<code class="go">type FooService interface { Foo1(x int) int Foo2(x string) string }</code>
Pour obtenir une liste des noms de méthodes pour cette interface en utilisant réflexion :
<code class="go">t := reflect.TypeOf((*FooService)(nil)).Elem()</code>
Cette ligne récupère le reflet.Type pour le type béton qui implémente l'interface FooService.
<code class="go">for i := 0; i < t.NumMethod(); i++ {</code>
La fonction NumMethod() renvoie le nombre de méthodes dans l'interface.
<code class="go">s = append(s, t.Method(i).Name)</code>
La fonction Method(i) renvoie un objet réflexion.Method représentant la méthode à l'index i. Le champ Nom de cet objet contient le nom de la méthode.
Les listes résultantes contiendront les noms de méthodes ["Foo1", "Foo2"].
Explications :
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!