日日是好日

第一次提交golangci-lint报错

April 28, 2021

  第一次开发的分支代码直接提交到远程后,触发了gitlab的pipeline,先是报了lint的几个错误, 修改提交之后又报了unittest的错误。
  之后在把本地分支push到远程分支之前可以先本地golangci-lint run ./...过lint,再go test -v -cover ./cmd/...过单元测试再提交。

  这里报的lint的错误是Implicit memory aliasing in for loop,刚开始以为是在for循环里的函数调用传地址会报错,后来根据https://stackoverflow.com/questions/62446118/implicit-memory-aliasing-in-for-loop 里的说法,发现是因为for _, x range y的写法,循环里如果有传地址的操作,其实传的一直是x的地址,据说多个协程的场景下可能会有风险。
  修改的方式很简单,把for循环的写法改成使用index遍历的方式即可,或者把函数实现从传指针改成传值的方式也可以。