Heim  >  Artikel  >  Backend-Entwicklung  >  Wie drucke ich den Methodensatz einer Schnittstelle in Go?

Wie drucke ich den Methodensatz einer Schnittstelle in Go?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 16:44:02908Durchsuche

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

So drucken Sie den Methodensatz einer Schnittstelle in Golang

Das Abrufen des Methodensatzes einer Schnittstelle in Go kann durch Reflexion erreicht werden. Mit dieser Technik können Sie die Typinformationen von Variablen überprüfen und abfragen, ohne ihren spezifischen Typ zur Kompilierungszeit zu kennen.

Lösung:

Mit dem Reflect-Paket können Sie darauf zugreifen die Typinformationen und Methoden einer Schnittstelle. Hier ist ein Codeausschnitt, der zeigt, wie die Funktionsnamen für eine Schnittstelle abgerufen werden:

<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 gibt die folgende Ausgabe aus:

Search
ListSearches
ClearSearches

Die Funktion „reflect.TypeOf()“ ruft die ab Typinformationen der anonymen Struktur, die die Schnittstelle einbettet. Dann liefert t.NumMethod() die Anzahl der von der Schnittstelle definierten Methoden und wir iterieren über sie mit t.Method(i).Name, um die Methodennamen zu erhalten.

Das obige ist der detaillierte Inhalt vonWie drucke ich den Methodensatz einer Schnittstelle in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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