在 Go 中,可以枚举特定包中定义的所有结构。为了实现这一点,最有效的解决方案包括解析 Go 源文件、提取抽象语法树 (AST) 以及隔离 ast.StructType 实例。
hg 命令可用于克隆 Go 源代码:
hg clone https://code.google.com/p/go/
随后,您可以通过解析源文件来隔离 ast.StructType 实例。下面是 linter go/lint 提供的示例,演示了如何提取结构体字段名称:
case *ast.StructType: for _, f := range v.Fields.List { for _, id := range f.Names { check(id, "struct field") } }
通过解析 AST 并提取 ast.StructType 实例,您可以获得其中所有结构体的列表指定包裹。
以上是如何检索 Go 包中的所有结构?的详细内容。更多信息请关注PHP中文网其他相关文章!