上QQ阅读APP看书,第一时间看更新
6.3 使用goimports
Go编译器在编译源码时会对源码文件导入的包进行检查,对于源文件中没有使用但却导入了的包或使用了但没有导入的包,Go编译器都会报错。遗憾的是,gofmt工具无法自动增加或删除文件头部的包导入列表。为此,Go核心团队的Brad Fitzpatrick实现了goimports[2],该工具后来被移到官方仓库golang.org/x/tools/cmd/goimports下维护了。
goimports在gofmt功能的基础上增加了对包导入列表的维护功能,可根据源码的最新变动自动从导入包列表中增删包。
安装goimports的方法很简单:
$go get golang.org/x/tools/cmd/goimports
如果Go编译器发现$GOPATH/bin路径存在,就会将goimports可执行文件放到该路径下,这时只要保证该路径在$PATH中即可。可以认为goimports是在gofmt之上又封装了一层,而且goimports提供的命令行选项和参数与gofmt也十分类似:
$ ./goimports -help usage: goimports [flags] [path ...] -cpuprofile string CPU profile output -d display diffs instead of rewriting files -e report all errors (not just the first 10 on different lines) -format-only if true, don't fix imports and only format. In this mode, goimports is effectively gofmt, with the addition that imports are grouped into sections. -l list files whose formatting differs from goimport's ...
因此,这里就不再赘述goimports的用法了。