Heim > Backend-Entwicklung > Golang > Wie kann ich alle exportierten Typen innerhalb eines Go-Pakets auflisten?

Wie kann ich alle exportierten Typen innerhalb eines Go-Pakets auflisten?

Susan Sarandon
Freigeben: 2024-12-18 00:45:10
Original
994 Leute haben es durchsucht

How Can I List All Exported Types Within a Go Package?

So listen Sie alle exportierten Typen in einem Paket auf

In Go können Typen auf Paketebene exportiert werden, indem ihr erster Buchstabe groß geschrieben wird. Dadurch können andere Pakete auf diese Typen zugreifen. Es gibt jedoch keine integrierte Funktion, um alle exportierten Typen in einem Paket direkt aufzulisten.

Eine Möglichkeit, diese Informationen zu erhalten, ist die Verwendung des Pakets go/importer. So geht's:

package main

import (
    "fmt"
    "go/importer"
    "go/pkg"
)

func main() {
    // Import the package you want to inspect
    pkg, err := importer.Default().Import("demo")
    if err != nil {
        fmt.Println("error:", err)
        return
    }

    // Iterate over the scopes and print the exported type names
    for _, declName := range pkg.Scope().Names() {
        fmt.Println(declName)
    }
}
Nach dem Login kopieren

Die Methode importer.Default().Import() verwendet den Paketpfad als Argument und gibt ein Paketobjekt zurück, das Informationen über das Paket darstellt. Die pkg.Scope()-Methode gibt den Paketbereich zurück, der alle exportierten und nicht exportierten Typen, Funktionen und Variablen enthält.

Hinweis: Dieser Ansatz funktioniert im Go Playground möglicherweise nicht auf Einschränkungen in der Umgebung.

Das obige ist der detaillierte Inhalt vonWie kann ich alle exportierten Typen innerhalb eines Go-Pakets auflisten?. 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