如何列出包中所有導出的類型
在 Go 中,包級類型可以透過首字母大寫來導出。這允許其他套件存取這些類型。但是,沒有內建函數可以直接列出套件中的所有匯出類型。
獲取此資訊的一種方法是使用 go/importer 套件。方法如下:
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) } }
importer.Default().Import() 方法將包路徑作為參數,並傳回一個表示有關包的資訊的包物件。 pkg.Scope() 方法傳回套件範圍,其中包含所有匯出和未匯出的類型、函數和變數。
注意:此方法可能無法在 Go Playground 中工作,因為環境的限制。
以上是如何列出 Go 套件中的所有匯出類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!