vscode-go 插件使用 golint 作为默认代码风格检查工具,而 golint 需要对包公开类型等需要注释说明用途,而且必须以类型名称开头。
所以经常会遇到风格检查下面的错误:
1 | exported function ... should have comment or be unexported |
但是对于国内的公司而言,不能只用英语注释吧,或者中英文混杂的注释,如下所示:
1 | // Door is a door |
代码要定义一个们,所以我需要注释说明这是个门,想想都很滑稽。不过要具体说明用途的话,GoDoc 生成的文档对阅读代码的人而言还是很有帮助的,代码写完就是文档,以下图片是 context 包的文档,是不是特别清晰?
不过要关闭这个还是可以的,vscode-go 插件提供了很多个可选的 lint,只要改成 golangci-lint 就可以关闭强制 lint。
golangci-lint 还支持注释指令,比如说 golangci-lint 有个强制规则就是需要检查函数 error 返回值,但是有些函数只是为了实现某些接口,一直返回一个 nil error,这个时候再次检查就有些累赘了。
比如说 Hash.Write 函数为了实现 io.Writer 返回 (int, error),但是 error 永远为 nil 的。
以 sha256 为例,可以看到 error 就是默认的 nil。
1 | func (d *digest) Write(p []byte) (nn int, err error) { |
这个时候就可以加上注释指令,忽略这个错误检查。
1 | package main |