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) } }
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!