如何在代码段中找到所有未导入的包?

时间:2016-04-21 11:29:28

标签: go

我想在给定的代码段中找到所有未导入的包,这些包应该由import声明导入。

例如,如果我有一个代码段:

s := fmt.Sprintf("foo %d", 33)
在这种情况下,请找出fmt,以便我可以为此代码段执行import "fmt"

我正在使用它,

// parser is import "go/parser", fset is the file contains the code
file, err = parser.ParseFile(fset, "stdin", source, 0) 
for _, ident := range file.Unresolved {
    // ident.Name is "fmt"
    // do something with ident.Name
}

但是这会像代码片段那样失败:

var a int

它将int视为未解决,但它是内置类型,为什么它将其视为未解析?

0 个答案:

没有答案