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/

posted on   荣锋亮  阅读(494)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.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 协议试用&& 几个问题

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示