vet工具的路径
vet安装在每一个平台操作系统的 GOROOT/pkg/tools/GOOS_$GOARCH/ 目录下, 例如我的Mac下就安装下面这个路径:
/usr/local/go/pkg/tool/darwin_amd64/vet
每个平台的安装路都不相同,比如linux 32位下可能是:
/usr/local/go/pkg/tool/darwin_386/vet
vet的使用
go vet 和 go tool vet基本上功能类似,go tool vet可以递归的对package进行语法检测,可以自行测试区别。
对一个.go源文件进行检查
go vet vet.go
package vet
import (
"fmt"
)
func vetTest() xxxxx{
fmt.Println("vet test")
}
运行结果如下:
一个包下所有源文件进行检测
go tool vet source/directory/*.go
对一个package进行语法检查
我们同样可以利用vet 对一个package进行检查,当然传入的包名必须是 相对路径 或者完整package。
例如我当前项目目录在$GOPATH/src/Test ,那么传入可以输入 go vet Test/vet 对vet包进行语法检查
如果我当前工作目录就是Test 那么我也可以直接输入 go vet ./vet 利用相对路径进行语法检查
不可以同时对package和源文件进行检查,但可以同时对多个包或者多个源文件进行检查
检测多个package
go vet package1 package2
检测多个源文件
go vet file1.go file2.go
错误的用法
go vet file.go package1
附加tags
我们还可以给vet 传递一些 tag 来指定检测行为,默认是all,全部检查,当传入以下tag的时候all将被设置为false
使用方法
go vet -atomic=false test.go
更多tag含义如下表,我从网上寻找,大家也可以去golang 官方去找 vet command的文档,里面更精确地描述。
range