问:如何在 Go 中列出包的所有公共方法?
A :由于 Go 的优化删除了未使用的函数,因此无法直接列出 Go 中包的公共方法。但是,根据您的用例,有一些潜在的解决方案:
静态分析:
示例:
import ( "fmt" "go/ast" "go/parser" "go/token" "os" ) // ... funcs := []*ast.FuncDecl{} for _, pack := range packs { for _, f := range pack.Files { for _, d := range f.Decls { if fn, isFn := d.(*ast.FuncDecl); isFn { funcs = append(funcs, fn) } } } } fmt.Printf("all funcs: %+v\n", funcs)
外部调用:
以上是如何列出Go包的公共方法?的详细内容。更多信息请关注PHP中文网其他相关文章!