Zugriff auf den Methodensatz einer Schnittstelle in Golang
Das Bestimmen der Methoden innerhalb einer Schnittstelle kann für verschiedene Szenarien nützlich sein. In diesem Artikel wird untersucht, wie der Methodensatz einer Schnittstelle in Golang effektiv gedruckt wird.
Herausforderung
Angesichts der folgenden Schnittstelle:
<code class="go">type Searcher interface { Search(query string) (found bool, err error) ListSearches() []string ClearSearches() (err error) }</code>
Wie Können wir die Namen dieser Methoden (Search, ListSearches und ClearSearches) ausgeben, ohne vorher einen konkreten Typ zu kennen, der die Schnittstelle implementiert?
Lösung
Das Reflect-Paket bietet die Möglichkeit, Typen zur Laufzeit zu überprüfen. Durch die Nutzung dieses Pakets können wir die Typinformationen unserer Schnittstelle abrufen und ihre Methoden untersuchen.
<code class="go">package main import ( "fmt" "reflect" ) type Searcher interface { Search(query string) (found bool, err error) ListSearches() []string ClearSearches() (err error) } func main() { t := reflect.TypeOf(struct{ Searcher }{}) for i := 0; i < t.NumMethod(); i++ { fmt.Println(t.Method(i).Name) } }</code>
Dieser Code erreicht unser Ziel, indem er den Schnittstellentyp reflektiert und seine Methoden iteriert, um ihre Namen auszugeben.
Ausgabe
Das Ausführen dieses Programms erzeugt die gewünschte Ausgabe:
Search ListSearches ClearSearches
Das obige ist der detaillierte Inhalt vonWie drucke ich den Methodensatz einer Schnittstelle in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!