golang race && vet 工具
竞争检测
参考代码
package main
import (
"fmt"
"sync"
)
func main() {
wg := sync.WaitGroup{}
wg.Add(5)
for i := 0; i < 5; i++ {
// go func(i int) {
// defer wg.Done()
// fmt.Println("index:", i)
// }(i)
go func() {
defer wg.Done()
fmt.Println("index:", i)
}()
}
wg.Wait()
}
race 工具使用
go run --race main.go
效果
vet 工具使用
go vet main.go

说明
一个比较好的习惯是在写代码的时候就包含vet (可以方便ci阶段进行处理),参考Makefile,因为race 是在运行阶段检测的,vet 就会比较方便
但是注意vet并不是能解决所有问题,当然如果使用vscode 同时安装了推荐的golang 工具,一些常见的问题会自动提示的(内置调用了vet等工具)
all: vet
vet:
go vet ./
参考资料
https://golang.org/doc/articles/race_detector.html
https://golang.org/cmd/vet/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2019-12-03 polynote 安装试用
2018-12-03 openresty redis all in one docker demo
2018-12-03 hasura graphql-engine &&patroni docker-compose 环境运行
2018-12-03 使用patroni 解决hasura graphql-engine pg 数据库ha的问题
2018-12-03 使用patroni 构建高可用的pg 数据库
2018-12-03 zsh:no matches found 问题解决
2017-12-03 caddy quic 协议试用&& 几个问题