英文:
Disable go vet checks for "composite literal uses unkeyed fields"
问题
我正在我的 CI 工具上运行 go vet,然后开始出现以下错误:
composite literal uses unkeyed fields
因为我是这样实例化的:
type A struct {
*B
}
像这样:
A{b} // b 的类型是 *B
我不关心这个警告,想要在 go vet 检查中禁用它。我该如何做到这一点?
英文:
I'm running go vet on my CI tool, and started getting the error:
composite literal uses unkeyed fields
Because I'm instantiating
type A struct {
*B
}
like this:
A{b} // b is of type *B
I don't care for this warning, and want to disable it on my go vet checks. How do I do this?
答案1
得分: 44
你可以禁用它,或者修复代码:
a := A{B: b}
答案2
得分: 23
$ go doc cmd/vet
默认情况下,会执行所有检查。如果有任何标志被显式设置为true,则只运行这些测试。相反,如果任何标志被显式设置为false,则禁用这些测试。因此,-printf=true运行printf检查,-printf=false运行除printf检查之外的所有检查。
未使用字段键入语法的复合结构字面量。
标志:-composites
未使用字段键入语法的复合结构字面量。
英文:
> $ go doc cmd/vet
>
> By default all checks are performed. If any flags are explicitly set
> to true, only those tests are run. Conversely, if any flag is
> explicitly set to false, only those tests are disabled. Thus
> -printf=true runs the printf check, -printf=false runs all checks except the printf check.
>
> Unkeyed composite literals
>
> Flag: -composites
>
> Composite struct literals that do not use the field-keyed syntax.
答案3
得分: 15
如果您正在使用语言服务器。
gopls
默认会进行 vet 检查。链接
"gopls": {
"analyses": { "composites": false }
}
英文:
If you're using the language server.
Gopls on by default in the VS Code Go extension
gopls
does vet check by default.
"gopls": {
"analyses": { "composites": false }
},
答案4
得分: 5
如果您正在使用VS Code,您需要在设置中手动设置标志。
设置 > 扩展 > Go
向下滚动到"Vet Flags"部分
添加项目并添加标志
-composites=false .
点击确定。
重新保存一个文件或重新启动VS Code以查看效果。
英文:
If you are using VS code, you have to manually set the flag under settings
settings > Extensions > Go
Scroll down to "Vet Flags" section
Add Item and add the flag
-composites=false .
Click ok.
Save one of your files again or restart VS code to see the effect.
答案5
得分: 3
你可以使用-composites=false
标志来禁用它,例如:
go vet -composites=false .
注意:go tool vet
已被弃用。
英文:
You can disable it with the -composites=false
flag: e.g.,
go vet -composites=false .
NB: go tool vet
is deprecated
答案6
得分: 2
go tool vet -composites=false . 的中文翻译是:运行命令 go tool vet -composites=false .
英文:
go tool vet -composites=false .
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论