Go - 包ast:在文件中找到包
我正在使用ast包解析文件。
我一直在寻找了一下文档,我无法找到一个方法来确定一个标记是一个包声明,e.g:package main
在文件的beggining。Go - 包ast:在文件中找到包
func find_package(node ast.Node) bool { switch x := node.(type) {
// This works with *ast.Ident or *ast.FuncDecl ... but not
// with *ast.Package
case *ast.Package:
fmt.Print(x.Name)
}
return true
}
我正在寻找一个干净的方式与AST包要做到这一点,我几乎可以肯定,我只是缺少文档中的一些东西。
回答:
所以基本上,好像你必须寻找一个File
,而不是包:
func find_package(node ast.Node) bool { switch x := node.(type) {
case *ast.File:
fmt.Print(x.Name)
}
return true
}
https://golang.org/pkg/go/ast/#File
以上是 Go - 包ast:在文件中找到包 的全部内容, 来源链接: utcz.com/qa/258423.html