我想在给定的代码段中找到所有未导入的包,这些包应该由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
视为未解决,但它是内置类型,为什么它将其视为未解析?