Go - 包ast:在文件中找到包

我正在使用ast包解析文件。
我一直在寻找了一下文档,我无法找到一个方法来确定一个标记是一个包声明,e.gpackage 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

回到顶部