美文网首页
go vet 工具的使用

go vet 工具的使用

作者: 木叶简 | 来源:发表于2021-08-19 07:40 被阅读0次

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

我们可以输入 go help vet 来了解一下它的简介,输入 go doc cmd/vet 可以查看详细一点的文档。

为什么使用 vet?

比如下面这段程序


package main

import "fmt"

func main() {
    test()
}

func test() {
    str := "Hello"
    fmt.Printf("%d World", str)
}

这时候编译是可以通过的。但是很明显,我们在 %d 的位置是要打印一个字符串,应该用 %s,这时候如果用 vet 扫描一下就可以避免这个问题

分析某个文件

go vet floder/main.go

分析某个包

go vet floder/*.go
go vet floder/...

也可以分析多个包和多个文件,用空格隔开即可。

另外,go 还有很多质量工具,最常用的就是 goimports(来检测引用包的问题),gofmt(代码格式问题),golangci-lint(语法检测),还有一些其他第三方的质量检测工具,帮助我们完善代码:https://github.com/analysis-tools-dev/static-analysis#go

比如 bodyclose 这个包,可以用来检测 HTTP 响应主体是否关闭,使用方法:

go vet -vettool=$(which bodyclose) github.com/timakin/go_api/...

配置在 goland 中使用:

goland 配置 go vet

相关文章

网友评论

      本文标题:go vet 工具的使用

      本文链接:https://www.haomeiwen.com/subject/msrgbltx.html