发现外部包中定义的类型
在 Go 中,当类型定义的名称以大写字母开头时,类型定义就会被导出。要从另一个包访问这些类型,您可以使用 go/importer 包。
解决方案:
package main import ( "fmt" "go/importer" demo "example.com/path/to/demo" // import the package containing the types ) func main() { pkg, err := importer.Default().Import("example.com/path/to/demo") if err != nil { fmt.Println("error:", err) return } // Get the names of all exported types in the package for _, declName := range pkg.Scope().Names() { fmt.Println(declName) } }
此代码将打印以下输出,其中列出演示包中定义的导出类型的名称:
People UserInfo
注意:在 Go Playground 上使用 go/importer 可能会导致错误。
以上是如何从外部 Go 包中发现导出的类型?的详细内容。更多信息请关注PHP中文网其他相关文章!