禁用”go vet”检查中的”composite literal uses unkeyed fields”错误。

huangapple go评论87阅读模式
英文:

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}

playground

英文:

You can disable it or you can fix the code instead:

a := A{B: b}

<kbd>playground</kbd>

答案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

如果您正在使用语言服务器。

VS Code Go 扩展中默认启用 Gopls

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.

&quot;gopls&quot;: {
     &quot;analyses&quot;: { &quot;composites&quot;: false }
 },

答案4

得分: 5

如果您正在使用VS Code,您需要在设置中手动设置标志。

设置 > 扩展 > Go

向下滚动到"Vet Flags"部分

禁用”go vet”检查中的”composite literal uses unkeyed fields”错误。

添加项目并添加标志

-composites=false .

点击确定。

重新保存一个文件或重新启动VS Code以查看效果。

英文:

If you are using VS code, you have to manually set the flag under settings

settings &gt; Extensions &gt; Go

Scroll down to "Vet Flags" section

禁用”go vet”检查中的”composite literal uses unkeyed fields”错误。

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 .

huangapple
  • 本文由 发表于 2016年3月29日 09:33:41
  • 转载请务必保留本文链接:https://go.coder-hub.com/36273920.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定