go vet命令

vet 是 golang 中自带的静态分析工具,可以让我们检查出 package 或者源码文件中一些隐含的错误。

这个工具还是比较有用的,可以多研究下

go vet  main.go
//Printf中的格式错了%d,写出了%s
//./main.go:11:5: Printf format %d has arg str of wrong type string
go vet  main.go main2.go main3.go ...
//分析多个文件
go vet testv2/*.go
//分析某个包下的所有go
go vet floder/...
//分析某个包下的所有文件
go install golang.org/x/tools/go/analysis/passes/shadow/cmd/shadow
go vet -vettool=$(which shadow)
//除了下面可用的分析器,还可以用第三方的分析器,执行命令如上

go doc cmd/vet 
//查看vet命令帮助
go tool vet help
//也是查看vet的帮助,二者有些不一样,可以对照着看

go vet 
//默认执行所有的分析器(下面有)

go vet -printf=true   main.go  
//go vet -分析器名称=true   main.go  
//printf是一种分析器,为true 意思是只使用这一种分析器,其他分析器都不使用
//为false,则说明,不使用rintf分析器,其他分析器都使用
go vet -c=10   main.go 
//c 显示有问题的上下10行
go vet -json  main.go 
//以json格式输出

所有可用的分析器

-all 进行全部检查。如果有其他检查标记被设置,则命令程序会将此值变为false。默认值为true。
-asmdecl 对汇编语言的源码文件进行检查。默认值为false。
-assign 检查赋值语句。默认值为false。
-atomic 检查代码中对代码包sync/atomic的使用是否正确。默认值为false。
-buildtags 检查编译标签的有效性。默认值为false。
-composites 检查复合结构实例的初始化代码。默认值为false。
-compositeWhiteList 是否使用复合结构检查的白名单。仅供测试使用。默认值为true。
-methods 检查那些拥有标准命名的方法的签名。默认值为false。
-printf 检查代码中对打印函数的使用是否正确。默认值为false。
-printfuncs 需要检查的代码中使用的打印函数的名称的列表,多个函数名称之间用英文半角逗号分隔。默认值为空字符串。
-rangeloops 检查代码中对在```range```语句块中迭代赋值的变量的使用是否正确。默认值为false。
-structtags 检查结构体类型的字段的标签的格式是否标准。默认值为false。
-unreachable 查找并报告不可到达的代码。默认值为false。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值