Wie drucke ich den Methodensatz einer Schnittstelle in Golang?

Susan Sarandon
Freigeben: 2024-10-31 22:23:29
Original
144 Leute haben es durchsucht

How to Print the Method Set of an Interface in Golang?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!