golang代码检测工具vet|golang格式检测fmt|literal copies lock value

一、项目目录下执行:
  go vet ./...
 一般错误
  1.declared but not used
    变量定义没用
  2.unreachable code
    return/continue等代码已经返回了还有执行
  3.literal copies lock value from pool: sync.Pool contains sync.noCopy
    sync.Pool 发生了copy,一般就是代码new或者var发成了指针复制,,如下面
    ---------------------------修改前--------------------------------------------
    pool := sync.Pool{
       New: func() interface{} { return bufio.NewReaderSize(nil, size) },
    }
    return &BufferReaderPool{pool: pool}
    --------------------------修改后----------------------------------------------
    return &BufferReaderPool{pool: sync.Pool{
       New: func() interface{} { return bufio.NewReaderSize(nil, size) },
    }}
 二、代码风格
  go fmt ./...
  会自动格式化目录下所有代码文件
 三、静态检测
  go build -race

 

 

参考:https://mp.weixin.qq.com/s?__biz=MzkyMzIyNjIxMQ==&mid=2247484558&idx=1&sn=34b1f3112657c823cbc35e3e35ffee6b&source=41#wechat_redirect

posted on 2022-01-06 17:18  studyphp  阅读(642)  评论(0编辑  收藏  举报

导航