web-dev-qa-db-ja.com

「合成リテラルがキーなしフィールドを使用する」のgo vetチェックを無効にする

CIツールでgo vetを実行していますが、エラーが発生し始めました。

composite literal uses unkeyed fields

私がインスタンス化しているので

type A struct {
   *B
}

このような:

A{b} // b is of type *B

私はこの警告を気にしません、そして私の獣医チェックでそれを無効にしたいです。どうすればいいですか?

23
Matt Joiner
$ 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.
22
peterSO

無効にするか、代わりにコードを修正できます。

a := A{B: b}

playground

44
OneOfOne
go tool vet -composites=false .
2
mvndaai

-composites=falseフラグを使用して無効にできます。たとえば、

go vet -composites=false .

注意:go tool vetは非推奨です

0
tantrix