登录
首页 >  Golang >  Go问答

确保在所有平台上运行 go vet 的代码扫描方法

来源:stackoverflow

时间:2024-02-16 17:51:23 246浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《确保在所有平台上运行 go vet 的代码扫描方法》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

当我运行 go vet ./... 来检查我的项目时,它仅检查与当前平台和架构匹配的源代码。例如。假设我有:

example.go
example_darwin.go
example_windows.go
example_linux.go
example_linux_amd64.go
example_linux_arm64.go

如果我在 mac 上运行 go vet ./... 那么它只会查看 example.goexample_darwin.go 但不会审核 windows 或 linux 文件。

如果我想审查所有内容,我可以对每个组合一遍又一遍地调用它:

GOOS=darwin GOARCH=amd64 go vet ./...
GOOS=windows GOARCH=amd64 go vet ./...
GOOS=linux GOARCH=amd64 go vet ./...
GOOS=linux GOARCH=arm64 go vet ./...

这似乎有点过分了。有没有一种简单的方法可以一次性审查所有代码,而无需多次重新审查某些文件?这是否是一件有意义的事情,或者审查本质上是一个“整体”操作?


解决方案


一遍又一遍地调用它是做到这一点的唯一方法。原因是 go vet 执行类型和符号解析,因此任何给定文件可能会针对一种架构进行彻底审查,但不能针对另一种架构进行彻底审查。

您能做的最好的事情就是以编程方式执行可用构建标记的所有各种 go vet 语句。我还没有尝试过这个,但是 go list-format 标志可能能够为您提供此标签列表,以输入到这样的脚本中。

以上就是《确保在所有平台上运行 go vet 的代码扫描方法》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>