Dans Go, les interfaces définissent un contrat de méthodes qu'un type doit implémenter. Lorsque vous interagissez avec des interfaces au moment de l'exécution, vous devrez peut-être accéder aux noms de leurs méthodes.
Problème :
Considérez la définition d'interface suivante :
type FooService interface { Foo1(x int) int Foo2(x string) string }
Comment pouvez-vous générer par programme une liste des noms de méthodes, c'est-à-dire ["Foo1", "Foo2"], à partir de l'interface FooService ?
Réponse :
Pour récupérer la liste des noms de méthodes d'un type d'interface, vous pouvez utiliser la réflexion d'exécution :
<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>
Explication :
Exemple de Playground :
https://go.dev/play/p/6cXnZKiKVw1
Astuce :
Référez-vous à la documentation sur "Comment obtenir le reflet.Type d'une interface ?" pour obtenir des informations sur l'obtention du reflet.Type d'une interface.
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!