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