github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/cmd/vet/doc.go (about)

     1  // Copyright 2018 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  /*
     6  VetはGoのソースコードを検査し、Printfのような呼び出しがフォーマット文字列と一致しない場合に疑わしい構造を報告します。Vetは完全な報告を保証するわけではないヒューリスティックを使用しているため、すべての報告が本当の問題ではないかもしれませんが、コンパイラでは見つからないエラーを見つけることができます。
     7  
     8  Vetは通常、goコマンドを通じて起動されます。
     9  現在のディレクトリのパッケージを検査するためには、以下のコマンドを使用します:
    10  
    11  	go vet
    12  
    13  パスが指定されたパッケージを検査するためには、以下のコマンドを使用します:
    14  
    15  	go vet my/project/...
    16  
    17  パッケージを指定する他の方法については「go help packages」を参照してください。
    18  
    19  Vetの終了コードは、ツールの誤った呼び出しまたは問題が報告された場合に非ゼロであり、それ以外の場合は0です。ツールはすべての可能な問題をチェックせず、信頼性の低いヒューリスティックに依存しているため、プログラムの正確性の厳密な指標ではなく、ガイダンスとして使用する必要があります。
    20  
    21  利用可能なチェックをリストするには、「go tool vet help」と実行します:
    22  
    23  	appends          append後の欠損値を確認する
    24  	asmdecl          アセンブリファイルとGo宣言の不一致を報告する
    25  	assign           不要な代入をチェックする
    26  	atomic           sync/atomicパッケージを使用した一般的なミスをチェックする
    27  	bools            ブール演算子に関連する一般的なミスをチェックする
    28  	buildtag         正常に配置された+buildタグを確認する
    29  	cgocall          cgoのポインタ渡しルールの違反を検出する
    30  	composites       キーの指定されていない組み合わせリテラルをチェックする
    31  	copylocks        値によって誤って渡されたロックをチェックする
    32  	defers           defer文での一般的な間違いを報告します
    33  	directive        //go:debugなどのGoツールチェーンディレクティブをチェックします
    34  	errorsas         errors.Asに非ポインタまたは非エラー値を渡すことを報告します
    35  	framepointer     それを保存する前にフレームポインタを破壊するアセンブリを報告します
    36  	httpresponse     HTTPレスポンスのミスをチェックする
    37  	ifaceassert      実行不可能なインターフェース間の型アサーションを検出します
    38  	loopclosure      ネストされた関数内からのループ変数への参照をチェックする
    39  	lostcancel       context.WithCancelが返すキャンセル関数が呼び出されたかをチェックする
    40  	nilfunc          関数とnilの無駄な比較をチェックする
    41  	printf           Printfのフォーマット文字列と引数の整合性をチェックする
    42  	shift            整数の幅と等しいかそれを上回るシフトをチェックする
    43  	sigchanyzer      os.Signalの非バッファードチャネルをチェックします
    44  	slog             log/slog関数への不正な引数をチェックする
    45  	stdmethods       cよく知られたインターフェースのメソッドのシグネチャをチェックする
    46  	stringintconv    string(int)変換をチェックします
    47  	structtag        構造体のフィールドタグがreflect.StructTag.Getに合致しているかをチェックする
    48  	testinggoroutine テストによって開始されたゴルーチンからの(*testing.T).Fatalへの呼び出しを報告します
    49  	tests            テストと例の一般的な誤った使用法をチェックする
    50  	timeformat       (time.Time).Formatまたはtime.Parseの呼び出しで2006-02-01をチェックします
    51  	unmarshal        ポインタでない値やインターフェースでない値がunmarshalに渡されていることを報告する
    52  	unreachable      到達不可能なコードをチェックする
    53  	unsafeptr        不正なuintptrからunsafe.Pointerへの変換をチェックする
    54  	unusedresult     いくつかの関数呼び出しの未使用結果をチェックする
    55  
    56  printfなどの特定のチェックの詳細とフラグについての情報は、「go tool vet help printf」と実行してください。
    57  
    58  デフォルトでは、すべてのチェックが実行されます。
    59  フラグがtrueに明示的に設定されている場合、それらのテストのみが実行されます。
    60  逆に、フラグが明示的にfalseに設定されている場合、それらのテストは無効になります。
    61  したがって、-printf=trueはprintfチェックを実行し、
    62  -printf=falseはprintfチェック以外のすべてのチェックを実行します。
    63  
    64  新しいチェックの作成方法については、golang.org/x/tools/go/analysisを参照してください。
    65  
    66  コアフラグ:
    67  
    68  	-c=N
    69  	  	エラーのある行とその周囲のN行を表示する
    70  	-json
    71  	  	分析診断(およびエラー)をJSON形式で出力する
    72  */
    73  package main