Methodennamen in einem Schnittstellentyp mithilfe der Laufzeitreflexion auflisten
In Go definieren Schnittstellen Verträge für Methodensignaturen. Allerdings kann es schwierig sein, zur Laufzeit die Namen von Methoden innerhalb einer Schnittstelle zu ermitteln. Dieser Artikel befasst sich mit diesem Problem und untersucht eine Methode zum Auflisten der Methodennamen mithilfe von Reflektion.
Problem:
Betrachten Sie den folgenden Schnittstellentyp:
<code class="go">type FooService interface { Foo1(x int) int Foo2(x string) string }</code>
Das Ziel besteht darin, mithilfe der Laufzeitreflexion dynamisch eine Liste von Methodennamen wie ["Foo1", "Foo2"] zu erhalten.
Lösung:
Um die abzurufen Methodennamen können wir die folgenden Schritte verwenden:
Hier ist die Code-Implementierung:
<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>
Durch die Verwendung der bereitgestellten Lösung können Sie dynamisch eine Liste von Methodennamen für jeden bestimmten Schnittstellentyp in Ihrem Go generieren Programme.
Das obige ist der detaillierte Inhalt vonWie liste ich Methodennamen in einem Go-Schnittstellentyp mithilfe von Reflection auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!