Eine Liste von Methodennamen von einer Schnittstelle abrufen
In Go ermöglicht Reflektion die Überprüfung und Manipulation der internen Struktur eines Programms zur Laufzeit . Dazu gehört die Möglichkeit, auf Informationen über einen Schnittstellentyp zuzugreifen, beispielsweise auf seine Methodennamen.
Betrachten Sie die folgende Schnittstelle:
<code class="go">type FooService interface { Foo1(x int) int Foo2(x string) string }</code>
Um eine Liste der Methodennamen für diese Schnittstelle zu erhalten, verwenden Sie Reflection:
<code class="go">t := reflect.TypeOf((*FooService)(nil)).Elem()</code>
Diese Zeile ruft den Reflect.Type für den konkreten Typ ab das die FooService-Schnittstelle implementiert.
<code class="go">for i := 0; i < t.NumMethod(); i++ {</code>
Die Funktion NumMethod() gibt die Anzahl der Methoden zurück die Schnittstelle.
<code class="go">s = append(s, t.Method(i).Name)</code>
Die Method(i)-Funktion gibt ein Reflect.Method-Objekt zurück, das die Methode darstellt am Index i. Das Namensfeld dieses Objekts enthält den Namen der Methode.
Die resultierenden Listen enthalten die Methodennamen ["Foo1", "Foo2"].
Erläuterungen:
Das obige ist der detaillierte Inhalt vonWie ruft man mithilfe von Reflection eine Liste von Methodennamen von einer Schnittstelle in Go ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!