我在我的CI工具上运行go vet,并开始收到错误:
composite literal uses unkeyed fields
因为我实例化了
type A struct {
*B
}
像这样:
A{b} // b is of type *B
我不在乎这个警告,并希望在我的兽医检查中禁用它。我该怎么做?
答案 0 :(得分:43)
答案 1 :(得分:19)
$ go doc cmd/vet
默认情况下会执行所有检查。如果明确设置了任何标志 为true,只运行那些测试。相反,如果有任何旗帜 显式设置为false,仅禁用那些测试。从而 -printf = true运行printf检查,-printf = false运行除printf检查之外的所有检查。
Unkeyed composite literals Flag: -composites Composite struct literals that do not use the field-keyed syntax.
答案 2 :(得分:3)
如果您使用的是语言服务器。
Gopls on by default in the VS Code Go extension
gopls
做兽医检查default.
"gopls": {
"analyses": { "composites": false }
},
答案 3 :(得分:1)
go tool vet -composites=false .
答案 4 :(得分:1)
如果使用VS代码,则必须在设置下手动设置标记
settings > Extensions > Go
向下滚动到“审核标志”部分
添加项目并添加标志
-composites=false .
单击确定。
再次保存文件之一或重新启动VS代码以查看效果。
答案 5 :(得分:0)
您可以使用-composites=false
标志将其禁用:例如,
go vet -composites=false .
注意:go tool vet
已弃用