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

     1  // Copyright 2011 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  // Code generated by 'go test cmd/go -v -run=^TestDocsUpToDate$ -fixdocs'; DO NOT EDIT.
     6  // Edit the documentation in other files and then execute 'go generate cmd/go' to generate this one.
     7  
     8  // Goは、Goのソースコードを管理するためのツールです。
     9  //
    10  // 使用法:
    11  //
    12  //	go <コマンド> [引数]
    13  //
    14  // コマンドは以下の通りです:
    15  //
    16  //	bug         バグレポートを開始する
    17  //	build       パッケージと依存関係をコンパイルする
    18  //	clean       オブジェクトファイルとキャッシュファイルを削除する
    19  //	doc         パッケージまたはシンボルのドキュメンテーションを表示する
    20  //	env         Goの環境情報を表示する
    21  //	fix         パッケージを更新して新しいAPIを使用する
    22  //	fmt         gofmt(再フォーマット)パッケージソース
    23  //	generate    ソースを処理してGoのファイルを生成する
    24  //	get         現在のモジュールに依存関係を追加し、それらをインストールする
    25  //	install     パッケージと依存関係をコンパイルし、インストールする
    26  //	list        パッケージまたはモジュールをリストする
    27  //	mod         モジュールのメンテナンス
    28  //	work        ワークスペースのメンテナンス
    29  //	run         Goのプログラムをコンパイルして実行する
    30  //	test        パッケージをテストする
    31  //	tool        指定されたgoツールを実行する
    32  //	version     Goのバージョンを表示する
    33  //	vet         パッケージのおそらく間違いを報告する
    34  //
    35  // "go help <コマンド>"を使用して、コマンドの詳細情報を取得します。
    36  //
    37  // 追加のヘルプトピック:
    38  //
    39  //	buildconstraint ビルド制約
    40  //	buildmode       ビルドモード
    41  //	c               GoとC間の呼び出し
    42  //	cache           ビルドとテストのキャッシュ
    43  //	environment     環境変数
    44  //	filetype        ファイルタイプ
    45  //	go.mod          go.modファイル
    46  //	gopath          GOPATH環境変数
    47  //	goproxy         モジュールプロキシプロトコル
    48  //	importpath      インポートパスの構文
    49  //	modules         モジュール、モジュールバージョンなど
    50  //	module-auth     go.sumを使用したモジュール認証
    51  //	packages        パッケージリストとパターン
    52  //	private         非公開コードのダウンロード設定
    53  //	testflag        テストフラグ
    54  //	testfunc        テスト関数
    55  //	vcs             GOVCSでバージョン管理を制御
    56  //
    57  // "go help <トピック>"を使用して、そのトピックに関する詳細情報を取得します。
    58  //
    59  // # Start a bug report
    60  //
    61  // 使用法:
    62  //
    63  //	go bug
    64  //
    65  // Bugはデフォルトのブラウザを開き、新しいバグレポートを開始します。
    66  // レポートには、役立つシステム情報が含まれます。
    67  //
    68  // # Compile packages and dependencies
    69  //
    70  // 使用法:
    71  //
    72  //	go build [-o output] [build flags] [packages]
    73  //
    74  // Buildは、インポートパスで指定されたパッケージとその依存関係をコンパイルしますが、
    75  // 結果はインストールされません。
    76  //
    77  // buildへの引数が単一のディレクトリからの.goファイルのリストである場合、
    78  // buildはそれらを単一のパッケージを指定するソースファイルのリストとして扱います。
    79  //
    80  // パッケージをコンパイルするとき、buildは'_test.go'で終わるファイルを無視します。
    81  //
    82  // 単一のmainパッケージをコンパイルするとき、buildは結果の
    83  // 実行可能ファイルをパッケージインポートパスの最後の非メジャーバージョン
    84  // コンポーネントに基づいて名付けられた出力ファイルに書き込みます。Windows実行可能ファイルを
    85  // 書き込むときには'.exe'のサフィックスが追加されます。
    86  // したがって、'go build example/sam'は'sam'または'sam.exe'を書き込みます。
    87  // 'go build example.com/foo/v2'は'foo'または'foo.exe'を書き込み、'v2.exe'ではありません。
    88  //
    89  // .goファイルのリストからパッケージをコンパイルするとき、実行可能ファイルは
    90  // 最初のソースファイルに基づいて名付けられます。
    91  // 'go build ed.go rx.go'は'ed'または'ed.exe'を書き込みます。
    92  //
    93  // 複数のパッケージをコンパイルするか、単一の非mainパッケージをコンパイルするとき、
    94  // buildはパッケージをコンパイルしますが、結果となるオブジェクトは破棄し、
    95  // パッケージがビルド可能であることをチェックするだけです。
    96  //
    97  // -oフラグは、buildに結果となる実行可能ファイルまたはオブジェクトを
    98  // 名前付きの出力ファイルまたはディレクトリに書き込むように強制します、
    99  // これは最後の2つの段落で説明されたデフォルトの動作とは異なります。
   100  // 名前付きの出力が既存のディレクトリであるか、
   101  // スラッシュまたはバックスラッシュで終わる場合、結果となる実行可能ファイルは
   102  // そのディレクトリに書き込まれます。
   103  //
   104  // ビルドフラグは、build、clean、get、install、list、run、
   105  // およびtestコマンドで共有されます:
   106  //
   107  //	-C dir
   108  //		コマンドを実行する前にdirに移動します。
   109  //		コマンドラインで指定された任意のファイルは、
   110  //		ディレクトリを変更した後で解釈されます。
   111  //		使用する場合、このフラグはコマンドラインの最初のものでなければなりません。
   112  //	-a
   113  //		すでに最新のパッケージの再ビルドを強制します。
   114  //	-n
   115  //		コマンドを表示しますが、実行はしません。
   116  //	-p n
   117  //		ビルドコマンドやテストバイナリなどのプログラムが、
   118  //		並行して実行できる数です。
   119  //		デフォルトはGOMAXPROCSで、通常は利用可能なCPUの数です。
   120  //	-race
   121  //		データ競合の検出を有効にします。
   122  //		linux/amd64、freebsd/amd64、darwin/amd64、darwin/arm64、windows/amd64、
   123  //		linux/ppc64le、およびlinux/arm64(48ビットVMAのみ)でのみサポートされています。
   124  //	-msan
   125  //		メモリサニタイザとの相互運用を有効にします。
   126  //		これはlinux/amd64、linux/arm64、linux/loong64、freebsd/amd64でのみサポートされており、
   127  //		ホストのCコンパイラとしてClang/LLVMを使用する場合に限ります。
   128  //		PIEビルドモードはlinux/amd64を除くすべてのプラットフォームで使用されます。
   129  //	-asan
   130  //		アドレスサニタイザとの相互運用を有効にします。
   131  //		これはlinux/arm64、linux/amd64、linux/loong64でのみサポートされています。
   132  //		linux/amd64またはlinux/arm64では、GCC 7以上またはClang/LLVM 9以上でのみサポートされています。
   133  //		また、linux/loong64ではClang/LLVM 16以上でのみサポートされています。
   134  //	-cover
   135  //		コードカバレッジ計測を有効にします。
   136  //	-covermode set,count,atomic
   137  //		カバレッジ分析のモードを設定します。
   138  //		デフォルトは "set" ですが、-raceが有効になっている場合は "atomic" です。
   139  //		値:
   140  //		set: bool: このステートメントは実行されますか?
   141  //		count: int: このステートメントは何回実行されますか?
   142  //		atomic: int: count、ただしマルチスレッドテストでは正確です。
   143  //			かなり高価です。
   144  //		-coverを設定します。
   145  //	-coverpkg pattern1,pattern2,pattern3
   146  //		'メイン'パッケージをターゲットとするビルド(つまり、Go実行可能ファイルをビルドする)の場合、
   147  //		各パターンに一致するパッケージに対してカバレッジ分析を適用します。
   148  //		デフォルトでは、メインのGoモジュール内のパッケージにカバレッジ分析を適用します。
   149  //		パッケージパターンの説明については、「go help packages」を参照してください。-coverを設定します。
   150  //	-v
   151  //		コンパイルされるパッケージの名前を表示します。
   152  //	-work
   153  //		一時的な作業ディレクトリの名前を表示し、
   154  //		終了時にそれを削除しません。
   155  //	-x
   156  //		コマンドを表示します。
   157  //	-asmflags '[pattern=]arg list'
   158  //		各go tool asm呼び出しに渡す引数。
   159  //	-buildmode mode
   160  //		使用するビルドモード。詳細については、「go help buildmode」を参照してください。
   161  //	-buildvcs
   162  //		バイナリにバージョン管理情報をスタンプするかどうか
   163  //		("true"、"false"、または "auto")。デフォルト("auto")では、メインパッケージ、
   164  //		それを含むメインモジュール、および現在のディレクトリがすべて同じリポジトリにある場合、
   165  //		バージョン管理情報がバイナリにスタンプされます。
   166  //		常にバージョン管理情報を省略するには、-buildvcs=falseを使用します。また、
   167  //		バージョン管理情報が利用可能であるが、ツールが欠けているかディレクトリ構造が曖昧であるために
   168  //		含めることができない場合にエラーを出すには、-buildvcs=trueを使用します。
   169  //	-compiler name
   170  //		使用するコンパイラの名前、runtime.Compiler(gccgoまたはgc)と同様。
   171  //	-gccgoflags '[pattern=]arg list'
   172  //		各gccgoコンパイラ/リンカー呼び出しに渡す引数。
   173  //	-gcflags '[pattern=]arg list'
   174  //		各go tool compile呼び出しに渡す引数。
   175  //	-installsuffix suffix
   176  //		パッケージインストールディレクトリの名前に使用する接尾辞、
   177  //		デフォルトのビルドから出力を分けて保持するため。
   178  //		-raceフラグを使用している場合、インストール接尾辞は自動的にraceに設定されます
   179  //		または、明示的に設定されている場合、_raceが追加されます。同様に-msan
   180  //		および-asanフラグについても同様です。デフォルト以外のコンパイル
   181  //		フラグが必要な-buildmodeオプションを使用すると、同様の効果があります。
   182  //	-ldflags '[pattern=]arg list'
   183  //		各go tool link呼び出しに渡す引数。
   184  //	-linkshared
   185  //		-buildmode=sharedで以前に作成された共有ライブラリに対してリンクされるコードをビルドします。
   186  //	-mod mode
   187  //		使用するモジュールのダウンロードモード: readonly、vendor、またはmod。
   188  //		デフォルトでは、vendorディレクトリが存在し、go.modのgoバージョンが1.14以上の場合、
   189  //		goコマンドは-mod=vendorが設定されているかのように動作します。
   190  //		それ以外の場合、goコマンドは-mod=readonlyが設定されているかのように動作します。
   191  //		詳細はhttps://golang.org/ref/mod#build-commandsを参照してください。
   192  //	-modcacherw
   193  //		モジュールキャッシュ内の新しく作成されたディレクトリを読み取り専用ではなく、
   194  //		読み書き可能にします。
   195  //	-modfile file
   196  //		モジュール対応モードでは、モジュールのルートディレクトリにあるものではなく、
   197  //		代替のgo.modファイルを読み込み(および可能な場合は書き込み)します。
   198  //		"go.mod"という名前のファイルは、モジュールのルートディレクトリを決定するために
   199  //		存在していなければなりませんが、アクセスされません。
   200  //		-modfileが指定されている場合、代替のgo.sumファイルも使用されます。
   201  //		そのパスは、".mod"拡張子をトリミングして".sum"を追加することで-modfileフラグから派生します。
   202  //	-overlay file
   203  //		ビルド操作のオーバーレイを提供するJSON設定ファイルを読み込みます。
   204  //		ファイルは、'Replace'という名前の単一のフィールドを持つJSON構造で、
   205  //		各ディスクファイルパス(文字列)をそのバッキングファイルパスにマッピングします。
   206  //		これにより、ビルドはディスクファイルパスがバッキングファイルパスによって与えられた内容で存在するかのように、
   207  //		またはバッキングファイルパスが空の場合はディスクファイルパスが存在しないかのように実行されます。
   208  //		-overlayフラグのサポートにはいくつかの制限があります。
   209  //		重要な点として、インクルードパスの外部から含まれるcgoファイルは、それらが含まれるGoパッケージと同じディレクトリに
   210  //		存在しなければならず、オーバーレイはgo runおよびgo testを通じて実行されるバイナリとテストには表示されません。
   211  //	-pgo file
   212  //		プロファイルガイド付き最適化(PGO)のプロファイルのファイルパスを指定します。
   213  //		特別な名前"auto"が指定された場合、ビルドの各メインパッケージについて、
   214  //		そのパッケージのディレクトリに"default.pgo"という名前のファイルが存在する場合、
   215  //		goコマンドはそれを選択し、それをメインパッケージの(トランジティブな)依存関係に適用します
   216  //		(他のパッケージには影響しません)。特別な名前"off"はPGOをオフにします。デフォルトは"auto"です。
   217  //	-pkgdir dir
   218  //		通常の場所ではなく、dirからすべてのパッケージをインストールしてロードします。
   219  //		例えば、非標準の設定でビルドする場合、生成されたパッケージを別の場所に保持するために-pkgdirを使用します。
   220  //	-tags tag,list
   221  //		ビルド中に満足させるための追加のビルドタグのカンマ区切りリスト。
   222  //		ビルドタグについての詳細は'go help buildconstraint'を参照してください。
   223  //		(Goの早いバージョンではスペース区切りのリストを使用していましたが、その形式は非推奨ですがまだ認識されます。)
   224  //	-trimpath
   225  //		結果の実行可能ファイルからすべてのファイルシステムパスを削除します。
   226  //		絶対ファイルシステムパスの代わりに、記録されたファイル名はモジュールパス@バージョン(モジュールを使用する場合)で始まるか、
   227  //		またはプレーンなインポートパス(標準ライブラリ、またはGOPATHを使用する場合)で始まります。
   228  //	-toolexec 'cmd args'
   229  //		vetやasmのようなツールチェーンプログラムを起動するために使用するプログラム。
   230  //		例えば、asmを実行する代わりに、goコマンドは'cmd args /path/to/asm <arguments for asm>'を実行します。
   231  //		TOOLEXEC_IMPORTPATH環境変数が設定され、ビルドされているパッケージの'go list -f {{.ImportPath}}'に一致します。
   232  //
   233  // -asmflags、-gccgoflags、-gcflags、および-ldflagsフラグは、
   234  // ビルド中に基礎となるツールに渡すためのスペースで区切られた引数のリストを受け入れます。
   235  // リストの要素にスペースを埋め込むには、それをシングルクォートまたはダブルクォートで囲みます。
   236  // 引数リストは、パッケージパターンと等号によって先行することができ、
   237  // それはその引数リストの使用を、そのパターンに一致するパッケージのビルドに制限します
   238  // (パッケージパターンの説明については'go help packages'を参照してください)。
   239  // パターンがない場合、引数リストはコマンドライン上で名前が付けられたパッケージにのみ適用されます。
   240  // フラグは、異なるパッケージのセットに対して異なる引数を指定するために、
   241  // 異なるパターンで繰り返すことができます。
   242  // パッケージが複数のフラグで与えられたパターンに一致する場合、
   243  // コマンドライン上で最新の一致が勝ちます。
   244  // 例えば、'go build -gcflags=-S fmt'は、パッケージfmtのみの逆アセンブルを出力しますが、
   245  // 'go build -gcflags=all=-S fmt'は、fmtとそのすべての依存関係の逆アセンブルを出力します。
   246  //
   247  // パッケージの指定についての詳細は、'go help packages'を参照してください。
   248  // パッケージとバイナリがインストールされる場所についての詳細は、
   249  // 'go help gopath'を実行してください。
   250  // GoとC/C++間の呼び出しについての詳細は、'go help c'を実行してください。
   251  //
   252  // 注意: Buildは、'go help gopath'で説明されているような特定の規約に従います。
   253  // しかし、すべてのプロジェクトがこれらの規約に従うわけではありません。
   254  // 独自の規約を持つインストールや別のソフトウェアビルドシステムを使用するインストールは、
   255  // ビルドツールの一部のオーバーヘッドと設計決定を避けるために、
   256  // 'go tool compile'や'go tool link'などの低レベルの呼び出しを選択することができます。
   257  //
   258  // 参照してください: go install, go get, go clean.
   259  //
   260  // # Remove object files and cached files
   261  //
   262  // 使用法:
   263  //
   264  //	go clean [cleanフラグ] [buildフラグ] [パッケージ]
   265  //
   266  // Cleanはパッケージソースディレクトリからオブジェクトファイルを削除します。
   267  // goコマンドはほとんどのオブジェクトを一時ディレクトリでビルドするため、
   268  // go cleanは主に他のツールによって残されたオブジェクトファイルや、
   269  // 手動でのgo buildの呼び出しによって残されたオブジェクトファイルを対象としています。
   270  //
   271  // パッケージ引数が与えられた場合、または-iまたは-rフラグが設定されている場合、
   272  // cleanはインポートパスに対応する各ソースディレクトリから以下のファイルを削除します:
   273  //
   274  //	_obj/            Makefilesから残された古いオブジェクトディレクトリ
   275  //	_test/           Makefilesから残された古いテストディレクトリ
   276  //	_testmain.go     Makefilesから残された古いgotestファイル
   277  //	test.out         Makefilesから残された古いテストログ
   278  //	build.out        Makefilesから残された古いテストログ
   279  //	*.[568ao]        Makefilesから残されたオブジェクトファイル
   280  //
   281  //	DIR(.exe)        go buildから
   282  //	DIR.test(.exe)   go test -cから
   283  //	MAINFILE(.exe)   go build MAINFILE.goから
   284  //	*.so             SWIGから
   285  //
   286  // リストでは、DIRはディレクトリの最終パス要素を表し、
   287  // MAINFILEはパッケージをビルドする際に含まれないディレクトリ内の任意のGoソースファイルのベース名を表します。
   288  //
   289  // -iフラグは、cleanに対応するインストール済みのアーカイブまたはバイナリ('go install'が作成するもの)を削除するように指示します。
   290  //
   291  // -nフラグは、cleanが実行する削除コマンドを表示するが、それらを実行しないようにします。
   292  //
   293  // -rフラグは、cleanをインポートパスで指定されたパッケージのすべての依存関係に再帰的に適用するようにします。
   294  //
   295  // -xフラグは、cleanがそれを実行するときに削除コマンドを表示するようにします。
   296  //
   297  // -cacheフラグは、cleanがgoビルドキャッシュ全体を削除するようにします。
   298  //
   299  // -testcacheフラグは、cleanがgoビルドキャッシュ内のすべてのテスト結果を期限切れにするようにします。
   300  //
   301  // -modcacheフラグは、cleanがモジュールダウンロードキャッシュ全体、バージョン付き依存関係の展開されたソースコードを含むものを削除するようにします。
   302  //
   303  // -fuzzcacheフラグは、cleanがGoビルドキャッシュに保存されたファズテスト用のファイルを削除するようにします。ファジングエンジンはコードカバレッジを拡大するファイルをキャッシュするため、それらを削除すると、同じカバレッジを提供する新しい入力が見つかるまでのファジングが効果的でなくなる可能性があります。これらのファイルはtestdataディレクトリに保存されたものとは異なり、cleanはそれらのファイルを削除しません。
   304  //
   305  // ビルドフラグについての詳細は、'go help build'を参照してください。
   306  //
   307  // パッケージの指定についての詳細は、'go help packages'を参照してください。
   308  //
   309  // # Show documentation for package or symbol
   310  //
   311  // 使用法:
   312  //
   313  //	go doc [docフラグ] [パッケージ|[パッケージ.]シンボル[.メソッドまたはフィールド]]
   314  //
   315  // Docは、その引数で識別される項目(パッケージ、const、func、type、var、method、またはstruct field)に関連付けられた
   316  // ドキュメンテーションコメントを印刷し、その項目の"下"の各第一レベル項目(パッケージの場合はパッケージレベルの宣言、
   317  // typeの場合はメソッドなど)の1行の要約を続けて印刷します。
   318  //
   319  // Docはゼロ、一つ、または二つの引数を受け入れます。
   320  //
   321  // 引数がない場合、つまり
   322  //
   323  //	go doc
   324  //
   325  // として実行された場合、現在のディレクトリのパッケージに対するパッケージドキュメンテーションを印刷します。
   326  // パッケージがコマンド(パッケージmain)である場合、パッケージのエクスポートされたシンボルは、-cmdフラグが提供されない限り、
   327  // プレゼンテーションから省略されます。
   328  //
   329  // 引数が一つ与えられた場合、その引数はドキュメント化されるべき項目のGo構文のような表現として扱われます。
   330  // 引数が選択するものは、GOROOTとGOPATHに何がインストールされているか、および引数の形式によります。
   331  // 形式は概ね以下のいずれかです:
   332  //
   333  //	go doc <pkg>
   334  //	go doc <sym>[.<methodOrField>]
   335  //	go doc [<pkg>.]<sym>[.<methodOrField>]
   336  //	go doc [<pkg>.][<sym>.]<methodOrField>
   337  //
   338  // 引数によって一致したこのリストの最初の項目が、そのドキュメンテーションが印刷されるものです。
   339  // (以下の例を参照してください。)ただし、引数が大文字で始まる場合、それは現在のディレクトリのシンボルまたはメソッドを識別するものとみなされます。
   340  //
   341  // パッケージの場合、スキャンの順序は、幅優先順序で辞書順に決定されます。
   342  // つまり、提示されるパッケージは、検索に一致し、ルートに最も近く、階層のそのレベルで辞書順に最初のものです。
   343  // GOROOTツリーは、常にGOPATHの前に全体がスキャンされます。
   344  //
   345  // パッケージが指定されていないか一致しない場合、現在のディレクトリのパッケージが選択されます。
   346  // したがって、"go doc Foo"は、現在のパッケージのシンボルFooのドキュメンテーションを表示します。
   347  //
   348  // パッケージパスは、修飾されたパスまたはパスの適切なサフィックスでなければなりません。
   349  // goツールの通常のパッケージメカニズムは適用されません:パッケージパス要素のような.や...はgo docによって実装されていません。
   350  //
   351  // 2つの引数で実行された場合、最初の引数はパッケージパス(完全なパスまたはサフィックス)であり、
   352  // 2つ目はシンボル、またはメソッドまたは構造体フィールドを持つシンボルです:
   353  //
   354  //	go doc <pkg> <sym>[.<methodOrField>]
   355  //
   356  // すべての形式で、シンボルをマッチングするとき、引数の小文字はどちらのケースでも一致しますが、大文字は正確に一致します。
   357  // これは、異なるシンボルが異なるケースを持つ場合、パッケージ内で小文字の引数の複数のマッチがある可能性があることを意味します。
   358  // これが発生した場合、すべてのマッチのドキュメンテーションが印刷されます。
   359  //
   360  // 例:
   361  //
   362  //	go doc
   363  //		現在のパッケージのドキュメンテーションを表示します。
   364  //	go doc Foo
   365  //		現在のパッケージのFooに関するドキュメンテーションを表示します。
   366  //		(Fooは大文字で始まるため、パッケージパスと一致することはありません。)
   367  //	go doc encoding/json
   368  //		encoding/jsonパッケージのドキュメンテーションを表示します。
   369  //	go doc json
   370  //		encoding/jsonの省略形です。
   371  //	go doc json.Number (または go doc json.number)
   372  //		json.Numberのドキュメンテーションとメソッドの概要を表示します。
   373  //	go doc json.Number.Int64 (または go doc json.number.int64)
   374  //		json.NumberのInt64メソッドのドキュメンテーションを表示します。
   375  //	go doc cmd/doc
   376  //		docコマンドのパッケージドキュメンテーションを表示します。
   377  //	go doc -cmd cmd/doc
   378  //		docコマンド内のパッケージドキュメンテーションとエクスポートされたシンボルを表示します。
   379  //	go doc template.new
   380  //		html/templateのNew関数のドキュメンテーションを表示します。
   381  //		(html/templateは辞書順でtext/templateの前に来ます)
   382  //	go doc text/template.new # 引数が一つ
   383  //		text/templateのNew関数のドキュメンテーションを表示します。
   384  //	go doc text/template new # 引数が二つ
   385  //		text/templateのNew関数のドキュメンテーションを表示します。
   386  //
   387  // 少なくとも現在のツリーでは、これらの呼び出しはすべてjson.DecoderのDecodeメソッドの
   388  // ドキュメンテーションを印刷します:
   389  //
   390  //	go doc json.Decoder.Decode
   391  //	go doc json.decoder.decode
   392  //	go doc json.decode
   393  //	cd go/src/encoding/json; go doc decode
   394  //
   395  // フラグ:
   396  //
   397  //	-all
   398  //		パッケージのすべてのドキュメンテーションを表示します。
   399  //	-c
   400  //		シンボルのマッチング時に大文字と小文字を区別します。
   401  //	-cmd
   402  //		コマンド(パッケージmain)を通常のパッケージとして扱います。
   403  //		それ以外の場合、パッケージmainのエクスポートされたシンボルは、
   404  //		パッケージのトップレベルのドキュメンテーションを表示するときに隠されます。
   405  //	-short
   406  //		各シンボルの一行表現を表示します。
   407  //	-src
   408  //		シンボルの完全なソースコードを表示します。これにより、
   409  //		その宣言と定義の完全なGoソースが表示されます。例えば、関数の定義(本体を含む)、
   410  //		型の宣言、または囲むconstブロックなどです。そのため、出力にはエクスポートされていない詳細が含まれる可能性があります。
   411  //	-u
   412  //		エクスポートされたシンボル、メソッド、フィールドだけでなく、エクスポートされていないもののドキュメンテーションも表示します。
   413  //
   414  // # Print Go environment information
   415  //
   416  // 使用法:
   417  //
   418  //	go env [-json] [-u] [-w] [var ...]
   419  //
   420  // EnvはGo環境情報を表示します。
   421  //
   422  // デフォルトでは、envは情報をシェルスクリプトとして表示します
   423  // (Windowsでは、バッチファイル)。一つ以上の変数名が引数として
   424  // 与えられた場合、envは各名前付き変数の値をそれぞれの行に表示します。
   425  //
   426  // -jsonフラグは、環境をシェルスクリプトではなくJSON形式で表示します。
   427  //
   428  // -uフラグは一つ以上の引数を必要とし、指定された環境変数のデフォルト設定を解除します。
   429  // これは、'go env -w'で設定されている場合に適用されます。
   430  //
   431  // -wフラグは、形式がNAME=VALUEの一つ以上の引数を必要とし、指定された環境変数のデフォルト設定を
   432  // 与えられた値に変更します。
   433  //
   434  // 環境変数についての詳細は、'go help environment'を参照してください。
   435  //
   436  // # Update packages to use new APIs
   437  //
   438  // 使用法:
   439  //
   440  //	go fix [-fix list] [packages]
   441  //
   442  // Fixは、インポートパスで指定されたパッケージにGo fixコマンドを実行します。
   443  //
   444  // -fixフラグは、実行する修正のカンマ区切りのリストを設定します。
   445  // デフォルトはすべての既知の修正です。
   446  // (その値は 'go tool fix -r'に渡されます。)
   447  //
   448  // fixについての詳細は、'go doc cmd/fix'を参照してください。
   449  // パッケージの指定についての詳細は、'go help packages'を参照してください。
   450  //
   451  // 他のオプションでfixを実行するには、'go tool fix'を実行します。
   452  //
   453  // 参照してください: go fmt, go vet.
   454  //
   455  // # Gofmt (reformat) package sources
   456  //
   457  // 使用法:
   458  //
   459  //	go fmt [-n] [-x] [packages]
   460  //
   461  // Fmtは、インポートパスで指定されたパッケージに対してコマンド 'gofmt -l -w' を実行します。
   462  // それは変更されたファイルの名前を出力します。
   463  //
   464  // gofmtについての詳細は、'go doc cmd/gofmt'を参照してください。
   465  // パッケージの指定についての詳細は、'go help packages'を参照してください。
   466  //
   467  // -nフラグは実行されるコマンドを出力します。
   468  // -xフラグはコマンドを実行するときにそれを出力します。
   469  //
   470  // -modフラグの値は、どのモジュールダウンロードモードを使用するかを設定します:readonlyまたはvendor。
   471  // 詳細は 'go help modules' を参照してください。
   472  //
   473  // 特定のオプションでgofmtを実行するには、gofmt自体を実行します。
   474  //
   475  // 参照してください: go fix, go vet.
   476  //
   477  // # Generate Go files by processing source
   478  //
   479  // 使用法:
   480  //
   481  //	go generate [-run regexp] [-n] [-v] [-x] [build flags] [file.go... | packages]
   482  //
   483  // Generateは、既存のファイル内のディレクティブによって記述されたコマンドを実行します。
   484  // これらのコマンドは任意のプロセスを実行できますが、目的はGoソースファイルを作成または更新することです。
   485  //
   486  // Go generateは、go build、go testなどによって自動的には実行されません。
   487  // 明示的に実行する必要があります。
   488  //
   489  // Go generateは、ファイルをスキャンしてディレクティブを探します。これらは、
   490  // 以下の形式の行です。
   491  //
   492  //	//go:generate command argument...
   493  //
   494  // (注意: 先頭にスペースはなく、"//go"の中にもスペースはありません) ここで、command
   495  // はローカルで実行できる実行可能ファイルに対応する、実行するジェネレータです。
   496  // それはシェルパス内に存在する必要があります(gofmt)、完全に修飾されたパスである必要があります
   497  // (/usr/you/bin/mytool)、または以下で説明するコマンドエイリアスである必要があります。
   498  //
   499  // go generateはファイルを解析しないことに注意してください。そのため、コメントや
   500  // 複数行の文字列の中にあるディレクティブのように見える行は、ディレクティブとして扱われます。
   501  //
   502  // ディレクティブへの引数は、スペースで区切られたトークンまたはダブルクォートで囲まれた
   503  // 文字列で、それらはジェネレータに個別の引数として渡されます。
   504  //
   505  // 引用符で囲まれた文字列はGoの構文を使用し、実行前に評価されます。引用符で囲まれた
   506  // 文字列はジェネレータへの単一の引数として現れます。
   507  //
   508  // コードが生成されることを人間とマシンツールに伝えるために、生成されたソースには、
   509  // 以下の正規表現(Goの構文)に一致する行が存在するべきです:
   510  //
   511  //	^// Code generated .* DO NOT EDIT\.$
   512  //
   513  // この行は、ファイル内の最初の非コメント、非空白の
   514  // テキストの前に現れなければなりません。
   515  //
   516  // Go generateは、ジェネレータを実行するときにいくつかの変数を設定します:
   517  //
   518  //	$GOARCH
   519  //		実行アーキテクチャ(arm、amd64など)
   520  //	$GOOS
   521  //		実行オペレーティングシステム(linux、windowsなど)
   522  //	$GOFILE
   523  //		ファイルのベース名。
   524  //	$GOLINE
   525  //		ソースファイル内のディレクティブの行番号。
   526  //	$GOPACKAGE
   527  //		ディレクティブを含むファイルのパッケージ名。
   528  //	$GOROOT
   529  //		ジェネレータを起動した 'go' コマンドの GOROOT ディレクトリ。
   530  //		これにはGoツールチェーンと標準ライブラリが含まれます。
   531  //	$DOLLAR
   532  //		ドル記号。
   533  //	$PATH
   534  //		親プロセスの $PATH。$GOROOT/bin が
   535  //		先頭に配置されます。これにより、'go' コマンドを実行するジェネレータは
   536  //		親の 'go generate' コマンドと同じ 'go' を使用します。
   537  //
   538  // 変数の置換と引用文字列の評価以外に、コマンドライン上で
   539  // "globbing"のような特別な処理は行われません。
   540  //
   541  // コマンドを実行する前の最後のステップとして、$GOFILEや
   542  // $HOMEなど、英数字の名前を持つ環境変数の呼び出しが、
   543  // コマンドライン全体で展開されます。変数の展開の構文は
   544  // すべてのオペレーティングシステムで$NAMEです。評価の
   545  // 順序により、変数は引用文字列の中でも展開されます。
   546  // 変数NAMEが設定されていない場合、$NAMEは空の文字列に
   547  // 展開されます。
   548  //
   549  // 以下の形式のディレクティブ
   550  //
   551  //	//go:generate -command xxx args...
   552  //
   553  // は、このソースファイルの残りの部分についてのみ、文字列xxxが引数によって
   554  // 識別されるコマンドを表すことを指定します。これはエイリアスを作成したり、
   555  // 複数の単語を持つジェネレータを処理したりするために使用できます。
   556  // 例えば、
   557  //
   558  //	//go:generate -command foo go tool foo
   559  //
   560  // は、コマンド "foo" がジェネレータ "go tool foo" を表すことを指定します。
   561  //
   562  // Generateは、コマンドラインで与えられた順序でパッケージを処理します、
   563  // 一度に一つずつ。コマンドラインが単一のディレクトリからの.goファイルを
   564  // リストしている場合、それらは単一のパッケージとして扱われます。パッケージ内では、
   565  // generateはパッケージ内のソースファイルをファイル名順に一つずつ処理します。
   566  // ソースファイル内では、generateはファイル内に現れる順序でジェネレータを実行します、
   567  // 一度に一つずつ。go generateツールはまた、ビルドタグ "generate" を設定するので、
   568  // ファイルはgo generateによって調査されるが、ビルド中には無視されます。
   569  //
   570  // コードが無効なパッケージの場合、generateは有効なパッケージ節を持つソースファイルのみを処理します。
   571  //
   572  // 任意のジェネレータがエラー終了ステータスを返すと、"go generate"はそのパッケージの
   573  // すべてのさらなる処理をスキップします。
   574  //
   575  // ジェネレータはパッケージのソースディレクトリで実行されます。
   576  //
   577  // Go generateは2つの特定のフラグを受け入れます:
   578  //
   579  //	-run=""
   580  //		非空の場合、フルオリジナルソーステキスト(末尾のスペースと
   581  //		最終改行を除く)が表現に一致するディレクティブを選択するための
   582  //		正規表現を指定します。
   583  //
   584  //	-skip=""
   585  //		非空の場合、フルオリジナルソーステキスト(末尾のスペースと
   586  //		最終改行を除く)が表現に一致するディレクティブを抑制するための
   587  //		正規表現を指定します。ディレクティブが-runと-skipの両方の引数に
   588  //		一致する場合、それはスキップされます。
   589  //
   590  // また、-v、-n、および-xを含む標準のビルドフラグも受け入れます。
   591  // -vフラグは、処理されるパッケージとファイルの名前を出力します。
   592  // -nフラグは実行されるコマンドを出力します。
   593  // -xフラグはコマンドを実行するときにそれを出力します。
   594  //
   595  // ビルドフラグの詳細については、'go help build'を参照してください。
   596  //
   597  // パッケージの指定についての詳細は、'go help packages'を参照してください。
   598  //
   599  // # Add dependencies to current module and install them
   600  //
   601  // 使用法:
   602  //
   603  //	go get [-t] [-u] [-v] [build flags] [packages]
   604  //
   605  // Getは、コマンドライン引数を特定のモジュールバージョンのパッケージに解決し、
   606  // go.modを更新してそれらのバージョンを要求し、ソースコードをモジュールキャッシュにダウンロードします。
   607  //
   608  // パッケージの依存関係を追加したり、最新バージョンにアップグレードするには:
   609  //
   610  //	go get example.com/pkg
   611  //
   612  // パッケージを特定のバージョンにアップグレードまたはダウングレードするには:
   613  //
   614  //	go get example.com/pkg@v1.2.3
   615  //
   616  // モジュールへの依存関係を削除し、それを必要とするモジュールをダウングレードするには:
   617  //
   618  //	go get example.com/mod@none
   619  //
   620  // 最小必要Goバージョンを最新リリースのGoバージョンにアップグレードするには:
   621  //
   622  //	go get go@latest
   623  //
   624  // Goツールチェーンを現在のGoツールチェーンの最新パッチリリースにアップグレードするには:
   625  //
   626  //	go get toolchain@patch
   627  //
   628  // 詳細は https://golang.org/ref/mod#go-get を参照してください。
   629  //
   630  // Goの初期のバージョンでは、'go get'はパッケージのビルドとインストールに使用されていました。
   631  // 現在では、'go get'はgo.mod内の依存関係の調整に専用化されています。代わりに'go install'
   632  // を使用してコマンドをビルドおよびインストールできます。バージョンが指定されている場合、
   633  // 'go install'はモジュール対応モードで実行され、現在のディレクトリのgo.modファイルは無視されます。
   634  // 例えば:
   635  //
   636  //	go install example.com/pkg@v1.2.3
   637  //	go install example.com/pkg@latest
   638  //
   639  // 詳細は 'go help install' または https://golang.org/ref/mod#go-install を参照してください。
   640  //
   641  // 'go get'は以下のフラグを受け入れます。
   642  //
   643  // -tフラグは、getにコマンドラインで指定されたパッケージのテストをビルドするために必要なモジュールを考慮するよう指示します。
   644  //
   645  // -uフラグは、getにコマンドラインで指定されたパッケージの依存関係を提供するモジュールを更新し、利用可能な場合は新しいマイナーリリースまたはパッチリリースを使用するよう指示します。
   646  //
   647  // -u=patchフラグ(-u patchではない)もまた、getに依存関係を更新するよう指示しますが、デフォルトをパッチリリースを選択するように変更します。
   648  //
   649  // -tフラグと-uフラグが一緒に使用されると、getはテスト依存関係も更新します。
   650  //
   651  // -xフラグは、実行されるコマンドを出力します。これは、モジュールが直接リポジトリからダウンロードされるときにバージョン管理コマンドをデバッグするのに便利です。
   652  //
   653  // モジュールについての詳細は、https://golang.org/ref/mod を参照してください。
   654  //
   655  // 'go get'を使用して最小のGoバージョンと推奨されるGoツールチェーンを更新する方法についての詳細は、https://go.dev/doc/toolchain を参照してください。
   656  //
   657  // パッケージの指定についての詳細は、'go help packages'を参照してください。
   658  //
   659  // このテキストは、ソースコードと依存関係の管理にモジュールを使用してgetの動作を説明しています。代わりにgoコマンドがGOPATHモードで実行されている場合、getのフラグと効果の詳細が変わり、'go help get'も変わります。'go help gopath-get'を参照してください。
   660  //
   661  // 参照してください: go build, go install, go clean, go mod.
   662  //
   663  // # Compile and install packages and dependencies
   664  //
   665  // 使用法:
   666  //
   667  //	go install [build flags] [packages]
   668  //
   669  // Installは、インポートパスで指定されたパッケージをコンパイルしてインストールします。
   670  //
   671  // 実行可能ファイルは、GOBIN環境変数で指定されたディレクトリにインストールされます。
   672  // これは、GOPATH環境変数が設定されていない場合、デフォルトで$GOPATH/binまたは$HOME/go/binになります。
   673  // $GOROOT内の実行可能ファイルは、$GOBINではなく$GOROOT/binまたは$GOTOOLDIRにインストールされます。
   674  //
   675  // 引数にバージョン接尾辞(@latestや@v1.0.0のような)がある場合、"go install"は
   676  // モジュール対応モードでパッケージをビルドし、現在のディレクトリや親ディレクトリにある
   677  // go.modファイルを無視します。これは、メインモジュールの依存関係に影響を与えずに
   678  // 実行可能ファイルをインストールするのに便利です。
   679  // ビルドで使用されるモジュールのバージョンについての曖昧性を排除するために、
   680  // 引数は以下の制約を満たさなければなりません:
   681  //
   682  // - 引数はパッケージパスまたはパッケージパターン("..."ワイルドカード付き)でなければなりません。
   683  // 標準パッケージ(fmtのような)、メタパターン(std、cmd、all)、または相対または絶対ファイルパスであってはなりません。
   684  //
   685  // - すべての引数は同じバージョン接尾辞を持たなければなりません。同じバージョンを参照していても、異なるクエリは許可されません。
   686  //
   687  // - すべての引数は、同じバージョンの同じモジュール内のパッケージを参照しなければなりません。
   688  //
   689  // - パッケージパス引数はmainパッケージを参照しなければなりません。パターン引数はmainパッケージのみに一致します。
   690  //
   691  // - "main"モジュールと見なされるモジュールはありません。コマンドラインで指定されたパッケージを含むモジュールにgo.modファイルがある場合、それはmainモジュールであるかのように解釈されるのと異なる方法で解釈されるような指示(replaceとexclude)を含んではなりません。モジュールは自身のより高いバージョンを要求してはなりません。
   692  //
   693  // - ベンダーディレクトリはどのモジュールでも使用されません。(ベンダーディレクトリは'go install'によってダウンロードされるモジュールのzipファイルに含まれません。)
   694  //
   695  // 引数にバージョン接尾辞がない場合、"go install"はGO111MODULE環境変数とgo.modファイルの存在に応じて、
   696  // モジュール対応モードまたはGOPATHモードで実行される可能性があります。詳細は'go help modules'を参照してください。
   697  // モジュール対応モードが有効になっている場合、"go install"はメインモジュールのコンテキストで実行されます。
   698  //
   699  // モジュール対応モードが無効になっている場合、非メインパッケージはディレクトリ$GOPATH/pkg/$GOOS_$GOARCHにインストールされます。
   700  // モジュール対応モードが有効になっている場合、非メインパッケージはビルドされてキャッシュされますが、インストールされません。
   701  //
   702  // Go 1.20より前では、標準ライブラリは$GOROOT/pkg/$GOOS_$GOARCHにインストールされていました。
   703  // Go 1.20からは、標準ライブラリはビルドされてキャッシュされますが、インストールされません。
   704  // GODEBUG=installgoroot=allを設定すると、$GOROOT/pkg/$GOOS_$GOARCHの使用が復元されます。
   705  //
   706  // ビルドフラグについての詳細は、'go help build'を参照してください。
   707  //
   708  // パッケージの指定についての詳細は、'go help packages'を参照してください。
   709  //
   710  // 参照してください: go build, go get, go clean.
   711  //
   712  // # List packages or modules
   713  //
   714  // 使用法:
   715  //
   716  //	go list [-f format] [-json] [-m] [list flags] [build flags] [packages]
   717  //
   718  // Listは、指定されたパッケージを一行に一つずつリストアップします。
   719  // 最も一般的に使用されるフラグは-fと-jsonで、これらは各パッケージに対して出力される形式を制御します。
   720  // 他のlistフラグは、以下で説明されているように、より具体的な詳細を制御します。
   721  //
   722  // デフォルトの出力はパッケージのインポートパスを表示します:
   723  //
   724  //	bytes
   725  //	encoding/json
   726  //	github.com/gorilla/mux
   727  //	golang.org/x/net/html
   728  //
   729  // -fフラグは、リストの代替形式を指定します。これはパッケージテンプレートの構文を使用します。
   730  // デフォルトの出力は-f '{{.ImportPath}}'と同等です。テンプレートに渡される構造体は:
   731  //
   732  //	type Package struct {
   733  //	    Dir            string   // パッケージソースが含まれるディレクトリ
   734  //	    ImportPath     string   // dir内のパッケージのインポートパス
   735  //	    ImportComment  string   // パッケージステートメントのインポートコメントのパス
   736  //	    Name           string   // パッケージ名
   737  //	    Doc            string   // パッケージのドキュメンテーション文字列
   738  //	    Target         string   // インストールパス
   739  //	    Shlib          string   // このパッケージを含む共有ライブラリ(-linksharedを使用するときのみ設定)
   740  //	    Goroot         bool     // このパッケージはGo rootにありますか?
   741  //	    Standard       bool     // このパッケージは標準のGoライブラリの一部ですか?
   742  //	    Stale          bool     // 'go install'はこのパッケージに対して何かを行いますか?
   743  //	    StaleReason    string   // Stale==trueの説明
   744  //	    Root           string   // このパッケージを含むGo rootまたはGo path dir
   745  //	    ConflictDir    string   // このディレクトリは$GOPATH内のDirをシャドウします
   746  //	    BinaryOnly     bool     // バイナリのみのパッケージ(もはやサポートされていません)
   747  //	    ForTest        string   // パッケージは名前付きテストでのみ使用されます
   748  //	    Export         string   // エクスポートデータを含むファイル(-exportを使用するとき)
   749  //	    BuildID        string   // コンパイルされたパッケージのビルドID(-exportを使用するとき)
   750  //	    Module         *Module  // パッケージの含まれるモジュールに関する情報、もしあれば(nilにできます)
   751  //	    Match          []string // このパッケージに一致するコマンドラインパターン
   752  //	    DepOnly        bool     // パッケージは依存関係のみで、明示的にリストされていません
   753  //	    DefaultGODEBUG string   // メインパッケージのデフォルトのGODEBUG設定
   754  //
   755  //	    // ソースファイル
   756  //	    GoFiles           []string   // .goソースファイル(CgoFiles、TestGoFiles、XTestGoFilesを除く)
   757  //	    CgoFiles          []string   // "C"をインポートする.goソースファイル
   758  //	    CompiledGoFiles   []string   // コンパイラに提示される.goファイル(-compiledを使用するとき)
   759  //	    IgnoredGoFiles    []string   // ビルド制約により無視される.goソースファイル
   760  //	    IgnoredOtherFiles []string // ビルド制約により無視される非.goソースファイル
   761  //	    CFiles            []string   // .cソースファイル
   762  //	    CXXFiles          []string   // .cc、.cxxおよび.cppソースファイル
   763  //	    MFiles            []string   // .mソースファイル
   764  //	    HFiles            []string   // .h、.hh、.hppおよび.hxxソースファイル
   765  //	    FFiles            []string   // .f、.F、.forおよび.f90 Fortranソースファイル
   766  //	    SFiles            []string   // .sソースファイル
   767  //	    SwigFiles         []string   // .swigファイル
   768  //	    SwigCXXFiles      []string   // .swigcxxファイル
   769  //	    SysoFiles         []string   // アーカイブに追加する.sysoオブジェクトファイル
   770  //	    TestGoFiles       []string   // パッケージ内の_test.goファイル
   771  //	    XTestGoFiles      []string   // パッケージ外の_test.goファイル
   772  //
   773  //	    // 埋め込みファイル
   774  //	    EmbedPatterns      []string // //go:embed パターン
   775  //	    EmbedFiles         []string // EmbedPatternsにマッチしたファイル
   776  //	    TestEmbedPatterns  []string // TestGoFiles内の//go:embed パターン
   777  //	    TestEmbedFiles     []string // TestEmbedPatternsにマッチしたファイル
   778  //	    XTestEmbedPatterns []string // XTestGoFiles内の//go:embed パターン
   779  //	    XTestEmbedFiles    []string // XTestEmbedPatternsにマッチしたファイル
   780  //
   781  //	    // Cgoのディレクティブ
   782  //	    CgoCFLAGS    []string // cgo: Cコンパイラのフラグ
   783  //	    CgoCPPFLAGS  []string // cgo: Cプリプロセッサのフラグ
   784  //	    CgoCXXFLAGS  []string // cgo: C++コンパイラのフラグ
   785  //	    CgoFFLAGS    []string // cgo: Fortranコンパイラのフラグ
   786  //	    CgoLDFLAGS   []string // cgo: リンカーのフラグ
   787  //	    CgoPkgConfig []string // cgo: pkg-configの名前
   788  //
   789  //	    // 依存関係情報
   790  //	    Imports      []string          // このパッケージが使用するインポートパス
   791  //	    ImportMap    map[string]string // ソースインポートからImportPathへのマップ(同一エントリーは省略)
   792  //	    Deps         []string          // すべての(再帰的に)インポートされた依存関係
   793  //	    TestImports  []string          // TestGoFilesからのインポート
   794  //	    XTestImports []string          // XTestGoFilesからのインポート
   795  //
   796  //	    // エラー情報
   797  //	    Incomplete bool            // このパッケージまたは依存関係にエラーがあります
   798  //	    Error      *PackageError   // パッケージの読み込みエラー
   799  //	    DepsErrors []*PackageError // 依存関係の読み込みエラー
   800  //	}
   801  //
   802  // ベンダーディレクトリに格納されたパッケージは、ベンダーディレクトリへのパスを含むImportPathを報告します
   803  // (例えば、"p"の代わりに"d/vendor/p")。
   804  // これにより、ImportPathはパッケージの特定のコピーを一意に識別します。
   805  // Imports、Deps、TestImports、およびXTestImportsのリストもこれらの
   806  // 拡張されたインポートパスを含みます。ベンダリングについての詳細は、golang.org/s/go15vendorを参照してください。
   807  //
   808  // エラー情報(存在する場合)は以下の通りです
   809  //
   810  //	type PackageError struct {
   811  //	    ImportStack   []string // コマンドラインで指定されたパッケージからこのパッケージへの最短パス
   812  //	    Pos           string   // エラーの位置(存在する場合、file:line:col)
   813  //	    Err           string   // エラーそのもの
   814  //	}
   815  //
   816  // モジュール情報はModule構造体で、以下のlist -mの議論で定義されています。
   817  //
   818  // テンプレート関数 "join" は strings.Join を呼び出します。
   819  //
   820  // テンプレート関数 "context" はビルドコンテキストを返します。これは以下のように定義されています:
   821  //
   822  //	type Context struct {
   823  //	    GOARCH        string   // ターゲットアーキテクチャ
   824  //	    GOOS          string   // ターゲットオペレーティングシステム
   825  //	    GOROOT        string   // Goのルート
   826  //	    GOPATH        string   // Goのパス
   827  //	    CgoEnabled    bool     // cgoが使用可能かどうか
   828  //	    UseAllFiles   bool     // //go:build行、ファイル名に関係なくファイルを使用する
   829  //	    Compiler      string   // ターゲットパスを計算する際に想定するコンパイラ
   830  //	    BuildTags     []string // //go:build行でマッチさせるビルド制約
   831  //	    ToolTags      []string // ツールチェーン固有のビルド制約
   832  //	    ReleaseTags   []string // 現在のリリースと互換性のあるリリース
   833  //	    InstallSuffix string   // インストールディレクトリの名前に使用する接尾辞
   834  //	}
   835  //
   836  // これらのフィールドの意味についての詳細は、go/buildパッケージのContext型のドキュメンテーションを参照してください。
   837  //
   838  // -jsonフラグは、パッケージデータをテンプレート形式ではなくJSON形式で出力するように指示します
   839  // JSONフラグは、出力する必要のあるフィールド名のセットをカンマ区切りでオプションで提供できます。
   840  // その場合、それらの必要なフィールドは常にJSON出力に表示されますが、
   841  // JSON構造体の計算における作業を節約するために他のフィールドは省略されるかもしれません。
   842  //
   843  // -compiledフラグは、listに対してCompiledGoFilesをコンパイラに提示されるGoソースファイルに設定するよう指示します。
   844  // 通常、これはGoFilesにリストされたファイルを繰り返し、その後でCgoFilesとSwigFilesの処理によって生成されたGoコードも追加します。
   845  // Importsリストは、GoFilesとCompiledGoFilesの両方からのすべてのインポートの統合を含みます。
   846  //
   847  // -depsフラグは、listに対して指定されたパッケージだけでなく、そのすべての依存関係も反復処理するよう指示します。
   848  // これは深さ優先の後順走査でそれらを訪問し、その結果、パッケージはそのすべての依存関係の後にのみリストされます。
   849  // コマンドラインで明示的にリストされていないパッケージは、DepOnlyフィールドがtrueに設定されます。
   850  //
   851  // -eフラグは、見つけることができないか形式が正しくないパッケージ、つまりエラーパッケージの処理を変更します。
   852  // デフォルトでは、listコマンドは各エラーパッケージについて標準エラーにエラーを出力し、
   853  // 通常の出力時にパッケージを考慮から省きます。
   854  // -eフラグを使用すると、listコマンドは標準エラーにエラーを出力せず、
   855  // 代わりに通常の出力でエラーパッケージを処理します。
   856  // エラーパッケージは空でないImportPathとnilでないErrorフィールドを持ちます。
   857  // 他の情報は欠落しているかもしれません(ゼロ化されているかもしれません)。
   858  //
   859  // -exportフラグは、listに対してExportフィールドを指定されたパッケージの最新のエクスポート情報を含む
   860  // ファイルの名前に設定するよう指示します。
   861  // また、BuildIDフィールドはコンパイルされたパッケージのビルドIDに設定されます。
   862  //
   863  // -findフラグは、listに対して指定されたパッケージを特定するが、
   864  // その依存関係は解決しないように指示します:ImportsとDepsのリストは空になります。
   865  // -findフラグを使用すると、-deps、-test、および-exportコマンドは使用できません。
   866  //
   867  // -testフラグを使用すると、listは指定されたパッケージだけでなく、
   868  // テストがあるパッケージのテストバイナリも報告します。これにより、
   869  // ソースコード分析ツールにテストバイナリがどのように構築されるかを正確に伝えます。
   870  // テストバイナリの報告されるインポートパスは、パッケージのインポートパスに
   871  // ".test"サフィックスが追加されたものです。例:"math/rand.test"。
   872  // テストをビルドする際、特定のテストのために特定の依存関係を再ビルドする必要があることがあります
   873  // (最も一般的にはテスト対象のパッケージ自体)。特定のテストバイナリのために再コンパイルされた
   874  // パッケージの報告されるインポートパスは、スペースと括弧内のテストバイナリの名前に続きます。
   875  // 例:"math/rand [math/rand.test]" または "regexp [sort.test]"。
   876  // ForTestフィールドもテスト対象のパッケージの名前に設定されます
   877  // (前述の例では "math/rand" または "sort")。
   878  //
   879  // Dir、Target、Shlib、Root、ConflictDir、およびExportのファイルパスは
   880  // すべて絶対パスです。
   881  //
   882  // デフォルトでは、GoFiles、CgoFilesなどのリストはDir内のファイル名を保持します
   883  // (つまり、Dirに対する相対パス、絶対パスではありません)。
   884  // -compiledフラグと-testフラグを使用して追加された生成されたファイルは、
   885  // 生成されたGoソースファイルのキャッシュされたコピーを参照する絶対パスです。
   886  // これらはGoソースファイルであるにもかかわらず、パスは".go"で終わらないかもしれません。
   887  //
   888  // -mフラグを使用すると、listはパッケージではなくモジュールをリストします。
   889  //
   890  // モジュールをリストするとき、-fフラグはまだフォーマットテンプレートを指定しますが、
   891  // 今度はModule構造体に適用されます:
   892  //
   893  //	type Module struct {
   894  //	    Path       string        // モジュールパス
   895  //	    Query      string        // このバージョンに対応するバージョンクエリ
   896  //	    Version    string        // モジュールバージョン
   897  //	    Versions   []string      // 利用可能なモジュールバージョン
   898  //	    Replace    *Module       // このモジュールによって置き換えられます
   899  //	    Time       *time.Time    // バージョンが作成された時間
   900  //	    Update     *Module       // 利用可能な更新(-uとともに)
   901  //	    Main       bool          // これはメインモジュールですか?
   902  //	    Indirect   bool          // モジュールはメインモジュールによって間接的にのみ必要とされます
   903  //	    Dir        string        // ファイルのローカルコピーを保持するディレクトリ(あれば)
   904  //	    GoMod      string        // モジュールを記述するgo.modファイルへのパス(あれば)
   905  //	    GoVersion  string        // モジュールで使用されるgoのバージョン
   906  //	    Retracted  []string      // 撤回情報(あれば)(-retractedまたは-uとともに)
   907  //	    Deprecated string        // 非推奨メッセージ(あれば)(-uとともに)
   908  //	    Error      *ModuleError  // モジュールの読み込みエラー
   909  //	    Sum        string        // パス、バージョンのチェックサム(go.sum内のように)
   910  //	    GoModSum   string        // go.modのチェックサム(go.sum内のように)
   911  //	    Origin     any           // モジュールの出所
   912  //	    Reuse      bool          // 古いモジュール情報の再利用は安全です
   913  //	}
   914  //
   915  //	type ModuleError struct {
   916  //	    Err string // エラーそのもの
   917  //	}
   918  //
   919  // GoModファイルは、モジュールがモジュールキャッシュにある場合、
   920  // または-modfileフラグが使用されている場合、モジュールディレクトリの外部にあるかもしれません。
   921  //
   922  // デフォルトの出力は、モジュールパスを印刷し、
   923  // その後、バージョンと置換(あれば)についての情報を印刷することです。
   924  // 例えば、'go list -m all'は次のように印刷するかもしれません:
   925  //
   926  //	my/main/module
   927  //	golang.org/x/text v0.3.0 => /tmp/text
   928  //	rsc.io/pdf v0.1.1
   929  //
   930  // Module構造体には、この出力行をフォーマットするStringメソッドがあり、
   931  // そのためデフォルトのフォーマットは-f '{{.String}}'と等価です。
   932  //
   933  // モジュールが置換されたとき、そのReplaceフィールドは
   934  // 置換モジュールを説明し、そのDirフィールドは、存在する場合、
   935  // 置換のソースコードに設定されます。(つまり、Replaceが非nilの場合、
   936  // DirはReplace.Dirに設定され、置換されたソースコードにはアクセスできません。)
   937  //
   938  // -uフラグは利用可能なアップグレードに関する情報を追加します。
   939  // 特定のモジュールの最新バージョンが現在のものより新しい場合、
   940  // list -uはモジュールのUpdateフィールドを新しいモジュールに関する情報に設定します。
   941  // list -uは、現在のバージョンが撤回されている場合、モジュールのRetractedフィールドも設定します。
   942  // モジュールのStringメソッドは、現在のバージョンの後に新しいバージョンを括弧でフォーマットすることで
   943  // 利用可能なアップグレードを示します。
   944  // バージョンが撤回されている場合、文字列"(retracted)"がそれに続きます。
   945  // 例えば、'go list -m -u all'は次のように印刷するかもしれません:
   946  //
   947  //	my/main/module
   948  //	golang.org/x/text v0.3.0 [v0.4.0] => /tmp/text
   949  //	rsc.io/pdf v0.1.1 (retracted) [v0.1.2]
   950  //
   951  // (ツールの場合、'go list -m -u -json all'の方が解析しやすいかもしれません。)
   952  //
   953  // -versionsフラグを使用すると、listはModuleのVersionsフィールドを
   954  // そのモジュールのすべての既知のバージョンのリストに設定します。これらは
   955  // セマンティックバージョニングに従って、最初から最新の順に並べられます。このフラグはまた、
   956  // デフォルトの出力形式を変更して、モジュールパスに続いてスペースで区切られたバージョンリストを表示します。
   957  //
   958  // -retractedフラグを使用すると、listは撤回されたモジュールバージョンに関する情報を報告します。
   959  // -retractedが-fまたは-jsonと一緒に使用されると、Retractedフィールドは、
   960  // バージョンがなぜ撤回されたかを説明する文字列に設定されます。
   961  // この文字列は、モジュールのgo.modファイルのretractディレクティブのコメントから取得されます。
   962  // -retractedが-versionsと一緒に使用されると、撤回されたバージョンと撤回されていないバージョンが一緒にリストされます。
   963  // -retractedフラグは、-mの有無に関係なく使用できます。
   964  //
   965  // list -mへの引数は、パッケージではなくモジュールのリストとして解釈されます。
   966  // メインモジュールは、現在のディレクトリを含むモジュールです。
   967  // アクティブなモジュールは、メインモジュールとその依存関係です。
   968  // 引数がない場合、list -mはメインモジュールを表示します。
   969  // 引数がある場合、list -mは引数で指定されたモジュールを表示します。
   970  // アクティブなモジュールは、そのモジュールパスで指定できます。
   971  // 特別なパターン"all"は、すべてのアクティブなモジュールを指定します。最初にメインモジュール、
   972  // その後モジュールパスでソートされた依存関係。
   973  // "..."を含むパターンは、モジュールパスがパターンに一致するアクティブなモジュールを指定します。
   974  // path@versionの形式のクエリは、そのクエリの結果を指定します。
   975  // これはアクティブなモジュールに限定されません。
   976  // モジュールクエリの詳細については、'go help modules'を参照してください。
   977  //
   978  // テンプレート関数 "module" は、モジュールパスまたはクエリである必要がある
   979  // 単一の文字列引数を取り、指定されたモジュールをModule構造体として返します。
   980  // エラーが発生した場合、結果は非nilのErrorフィールドを持つModule構造体になります。
   981  //
   982  // -mを使用しているとき、-reuse=old.jsonフラグは、以前の'go list -m -json'の実行結果を
   983  // 含むファイルの名前を受け入れます。この実行は、同じセットの修飾フラグ(-u、-retracted、-versionsなど)を使用します。
   984  // goコマンドは、このファイルを使用して、モジュールが前回の呼び出し以降に変更されていないことを判断し、
   985  // それについての情報の再ダウンロードを避けることができます。
   986  // 再ダウンロードされないモジュールは、新しい出力でReuseフィールドをtrueに設定することでマークされます。
   987  // 通常、モジュールキャッシュはこの種の再利用を自動的に提供します。しかし、モジュールキャッシュを保持しないシステムでは、
   988  // -reuseフラグが役立つことがあります。
   989  //
   990  // ビルドフラグについての詳細は、'go help build'を参照してください。
   991  //
   992  // パッケージの指定についての詳細は、'go help packages'を参照してください。
   993  //
   994  // モジュールについての詳細は、https://golang.org/ref/modを参照してください。
   995  //
   996  // # Module maintenance
   997  //
   998  // Go modはモジュールの操作へのアクセスを提供します。
   999  //
  1000  // モジュールのサポートは、'go mod'だけでなく、すべてのgoコマンドに組み込まれていることに注意してください。
  1001  // 例えば、日々の依存関係の追加、削除、アップグレード、ダウングレードは、'go get'を使用して行うべきです。
  1002  // モジュール機能の概要については、'go help modules'を参照してください。
  1003  //
  1004  // 使用法:
  1005  //
  1006  //	go mod <command> [arguments]
  1007  //
  1008  // コマンドは次のとおりです:
  1009  //
  1010  //	download    モジュールをローカルキャッシュにダウンロード
  1011  //	edit        ツールやスクリプトからgo.modを編集
  1012  //	graph       モジュール要件グラフを印刷
  1013  //	init        現在のディレクトリに新しいモジュールを初期化
  1014  //	tidy        不足しているモジュールを追加し、使用されていないモジュールを削除
  1015  //	vendor      依存関係のベンダーコピーを作成
  1016  //	verify      依存関係が期待した内容を持っていることを確認
  1017  //	why         パッケージやモジュールが必要な理由を説明
  1018  //
  1019  // コマンドの詳細については、"go help mod <command>"を使用してください。
  1020  //
  1021  // # Download modules to local cache
  1022  //
  1023  // 使用法:
  1024  //
  1025  //	go mod download [-x] [-json] [-reuse=old.json] [modules]
  1026  //
  1027  // Downloadは指定されたモジュールをダウンロードします。これらは、メインモジュールの依存関係を選択するモジュールパターン
  1028  // またはpath@version形式のモジュールクエリになることができます。
  1029  //
  1030  // 引数がない場合、downloadはメインモジュール内のパッケージをビルドおよびテストするために必要なモジュールに適用されます:
  1031  // メインモジュールが'go 1.17'以上で明示的に必要とされるモジュール、または'go 1.16'以下であればすべての
  1032  // トランジティブに必要なモジュール。
  1033  //
  1034  // goコマンドは、通常の実行中に必要に応じてモジュールを自動的にダウンロードします。
  1035  // "go mod download"コマンドは、主にローカルキャッシュを事前に準備するため、
  1036  // またはGoモジュールプロキシの答えを計算するために役立ちます。
  1037  //
  1038  // デフォルトでは、downloadは標準出力に何も書き込みません。進行状況のメッセージやエラーを標準エラーに出力することがあります。
  1039  //
  1040  // -jsonフラグを使用すると、downloadは標準出力にJSONオブジェクトのシーケンスを出力します。
  1041  // これは、ダウンロードされた各モジュール(または失敗)を説明し、次のGo構造体に対応します:
  1042  //
  1043  //	type Module struct {
  1044  //	    Path     string // モジュールパス
  1045  //	    Query    string // このバージョンに対応するバージョンクエリ
  1046  //	    Version  string // モジュールバージョン
  1047  //	    Error    string // モジュールの読み込みエラー
  1048  //	    Info     string // キャッシュされた.infoファイルへの絶対パス
  1049  //	    GoMod    string // キャッシュされた.modファイルへの絶対パス
  1050  //	    Zip      string // キャッシュされた.zipファイルへの絶対パス
  1051  //	    Dir      string // キャッシュされたソースルートディレクトリへの絶対パス
  1052  //	    Sum      string // パス、バージョンのチェックサム(go.sum内)
  1053  //	    GoModSum string // go.modのチェックサム(go.sum内)
  1054  //	    Origin   any    // モジュールの出所
  1055  //	    Reuse    bool   // 古いモジュール情報の再利用は安全
  1056  //	}
  1057  //
  1058  // -reuseフラグは、以前の'go mod download -json'の実行結果を含むファイルの名前を受け入れます。
  1059  // goコマンドは、このファイルを使用して、モジュールが前回の呼び出し以降に変更されていないことを判断し、
  1060  // それについての情報の再ダウンロードを避けることができます。再ダウンロードされないモジュールは、
  1061  // 新しい出力でReuseフィールドをtrueに設定することでマークされます。通常、モジュールキャッシュは
  1062  // この種の再利用を自動的に提供します。しかし、モジュールキャッシュを保持しないシステムでは、
  1063  // -reuseフラグが役立つことがあります。
  1064  //
  1065  // -xフラグを使用すると、downloadは実行するコマンドを出力します。
  1066  //
  1067  // 'go mod download'についての詳細は、https://golang.org/ref/mod#go-mod-download を参照してください。
  1068  //
  1069  // バージョンクエリについての詳細は、https://golang.org/ref/mod#version-queries を参照してください。
  1070  //
  1071  // # Edit go.mod from tools or scripts
  1072  //
  1073  // 使用法:
  1074  //
  1075  //	go mod edit [編集フラグ] [-fmt|-print|-json] [go.mod]
  1076  //
  1077  // Editは、主にツールやスクリプトによる使用のためのgo.modの編集用コマンドラインインターフェースを提供します。
  1078  // それはgo.modのみを読み取り、関与するモジュールについての情報を探しません。
  1079  // デフォルトでは、editはメインモジュールのgo.modファイルを読み書きしますが、
  1080  // 編集フラグの後に異なるターゲットファイルを指定することができます。
  1081  //
  1082  // 編集フラグは、編集操作のシーケンスを指定します。
  1083  //
  1084  // -fmtフラグは、他の変更を加えずにgo.modファイルを再フォーマットします。
  1085  // この再フォーマットは、go.modファイルを使用または書き換える他の修正によっても暗示されます。
  1086  // このフラグが必要な唯一の時間は、他のフラグが指定されていない場合、つまり 'go mod edit -fmt'のような場合です。
  1087  //
  1088  // -moduleフラグは、モジュールのパスを変更します(go.modファイルのモジュール行)。
  1089  //
  1090  // -require=path@versionと-droprequire=pathフラグは、
  1091  // 指定されたモジュールパスとバージョンに対する要求を追加し、削除します。
  1092  // -requireはpath上の既存の要求をすべて上書きすることに注意してください。
  1093  // これらのフラグは主に、モジュールグラフを理解するツールのためのものです。
  1094  // ユーザーは'go get path@version'または'go get path@none'を好むべきです。
  1095  // これらは、他のモジュールによって課される制約を満たすために必要な他のgo.modの調整も行います。
  1096  //
  1097  // -exclude=path@versionと-dropexclude=path@versionフラグは、
  1098  // 指定されたモジュールパスとバージョンに対する除外を追加し、削除します。
  1099  // -exclude=path@versionは、その除外が既に存在する場合、何も操作を行いません。
  1100  //
  1101  // -replace=old[@v]=new[@v]フラグは、指定されたモジュールパスとバージョンのペアの置換を追加します。
  1102  // old@vの@vが省略された場合、左側にバージョンがない置換が追加され、oldモジュールパスのすべてのバージョンに適用されます。
  1103  // new@vの@vが省略された場合、新しいパスはモジュールパスではなく、ローカルのモジュールルートディレクトリであるべきです。
  1104  // -replaceはold[@v]の冗長な置換をすべて上書きすることに注意してください。したがって、@vを省略すると、特定のバージョンの既存の置換が削除されます。
  1105  //
  1106  // -dropreplace=old[@v]フラグは、指定されたモジュールパスとバージョンのペアの置換を削除します。
  1107  // @vが省略された場合、左側にバージョンがない置換が削除されます。
  1108  //
  1109  // -retract=versionと-dropretract=versionフラグは、指定されたバージョンに対する撤回を追加し、削除します。
  1110  // バージョンは、"v1.2.3"のような単一のバージョンまたは"[v1.1.0,v1.1.9]"のような閉区間である可能性があります。
  1111  // その撤回が既に存在する場合、-retract=versionは何も操作を行わないことに注意してください。
  1112  //
  1113  // -require、-droprequire、-exclude、-dropexclude、-replace、
  1114  // -dropreplace、-retract、および -dropretractの編集フラグは繰り返すことができ、
  1115  // 与えられた順序で変更が適用されます。
  1116  //
  1117  // -go=versionフラグは、期待されるGo言語のバージョンを設定します。
  1118  //
  1119  // -toolchain=nameフラグは、使用するGoツールチェーンを設定します。
  1120  //
  1121  // -printフラグは、最終的なgo.modをテキスト形式で印刷し、go.modに戻す代わりにそれを印刷します。
  1122  //
  1123  // -jsonフラグは、最終的なgo.modファイルをJSON形式で印刷し、go.modに戻す代わりにそれを印刷します。JSON出力は、これらのGo型に対応します:
  1124  //
  1125  //	type Module struct {
  1126  //		Path    string
  1127  //		Version string
  1128  //	}
  1129  //
  1130  //	type GoMod struct {
  1131  //		Module    ModPath
  1132  //		Go        string
  1133  //		Toolchain string
  1134  //		Require   []Require
  1135  //		Exclude   []Module
  1136  //		Replace   []Replace
  1137  //		Retract   []Retract
  1138  //	}
  1139  //
  1140  //	type ModPath struct {
  1141  //		Path       string
  1142  //		Deprecated string
  1143  //	}
  1144  //
  1145  //	type Require struct {
  1146  //		Path string
  1147  //		Version string
  1148  //		Indirect bool
  1149  //	}
  1150  //
  1151  //	type Replace struct {
  1152  //		Old Module
  1153  //		New Module
  1154  //	}
  1155  //
  1156  //	type Retract struct {
  1157  //		Low       string
  1158  //		High      string
  1159  //		Rationale string
  1160  //	}
  1161  //
  1162  // 単一のバージョンを表すRetractエントリ(間隔ではない)は、
  1163  // "Low"と"High"のフィールドが同じ値に設定されます。
  1164  //
  1165  // Note that this only describes the go.mod file itself, not other modules
  1166  // referred to indirectly. For the full set of modules available to a build,
  1167  // use 'go list -m -json all'.
  1168  //
  1169  // Edit also provides the -C, -n, and -x build flags.
  1170  //
  1171  // See https://golang.org/ref/mod#go-mod-edit for more about 'go mod edit'.
  1172  //
  1173  // # Print module requirement graph
  1174  //
  1175  // 使用法:
  1176  //
  1177  //	go mod graph [-go=version] [-x]
  1178  //
  1179  // Graphは、モジュール要求グラフ(置換が適用された状態)をテキスト形式で印刷します。
  1180  // 出力の各行には、スペースで区切られた2つのフィールドがあります:モジュールとその要求の一つ。
  1181  // 各モジュールは、path@versionの形式の文字列として識別されますが、メインモジュールは@version接尾辞がありません。
  1182  //
  1183  // -goフラグは、go.modファイルの'go'ディレクティブで示されるバージョンではなく、
  1184  // 指定されたGoバージョンによってロードされたモジュールグラフを報告するようにgraphに指示します。
  1185  //
  1186  // -xフラグは、graphが実行するコマンドを印刷するようにgraphに指示します。
  1187  //
  1188  // 'go mod graph'についての詳細は、https://golang.org/ref/mod#go-mod-graph を参照してください。
  1189  //
  1190  // # Initialize new module in current directory
  1191  //
  1192  // 使用法:
  1193  //
  1194  //	go mod init [module-path]
  1195  //
  1196  // Initは、新しいgo.modファイルを初期化し、現在のディレクトリに書き込むことで、
  1197  // 現在のディレクトリをルートとする新しいモジュールを作成します。go.modファイルはすでに存在していてはなりません。
  1198  //
  1199  // Initは、新しいモジュールのモジュールパスを1つのオプション引数として受け入れます。もし
  1200  // モジュールパス引数が省略された場合、initは.goファイルのインポートコメント、
  1201  // ベンダーツールの設定ファイル(Gopkg.lockのような)、そして現在のディレクトリ(GOPATH内であれば)を
  1202  // 使用してモジュールパスを推測しようとします。
  1203  //
  1204  // See https://golang.org/ref/mod#go-mod-init for more about 'go mod init'.
  1205  //
  1206  // # Add missing and remove unused modules
  1207  //
  1208  // 使用法:
  1209  //
  1210  //	go mod tidy [-e] [-v] [-x] [-go=version] [-compat=version]
  1211  //
  1212  // Tidyは、go.modがモジュール内のソースコードと一致することを確認します。
  1213  // 現在のモジュールのパッケージと依存関係をビルドするために必要なモジュールを追加し、
  1214  // 関連するパッケージを提供しない使用されていないモジュールを削除します。また、
  1215  // go.sumに不足しているエントリを追加し、不必要なものを削除します。
  1216  //
  1217  // -vフラグは、tidyが削除されたモジュールについての情報を標準エラーに印刷するようにします。
  1218  //
  1219  // -eフラグは、パッケージのロード中にエラーが発生した場合でも、tidyが処理を続行しようとするようにします。
  1220  //
  1221  // -goフラグは、tidyがgo.modファイル内の'go'ディレクティブを指定されたバージョンに更新するようにします。
  1222  // これにより、go.modファイル内で明示的な要件として保持されるモジュール依存関係が変更される可能性があります。
  1223  // (Goバージョン1.17以降は、遅延モジュールロードをサポートするためにより多くの要件を保持します。)
  1224  //
  1225  // -compatフラグは、指定されたメジャーGoリリースからの'go'コマンドがモジュールグラフを正常にロードするために
  1226  // 必要な追加のチェックサムを保持し、そのバージョンの'go'コマンドが異なるモジュールバージョンからインポートされた
  1227  // パッケージをロードすると、tidyがエラーを出すようにします。デフォルトでは、tidyは-compatフラグがgo.modファイル内の
  1228  // 'go'ディレクティブによって示されるバージョンよりも前のバージョンに設定されているかのように動作します。
  1229  //
  1230  // -xフラグは、tidyがdownloadが実行するコマンドを印刷するようにします。
  1231  //
  1232  // 'go mod tidy'についての詳細は、https://golang.org/ref/mod#go-mod-tidy を参照してください。
  1233  //
  1234  // # Make vendored copy of dependencies
  1235  //
  1236  // 使用法:
  1237  //
  1238  //	go mod vendor [-e] [-v] [-o outdir]
  1239  //
  1240  // Vendorは、メインモジュールのベンダーディレクトリをリセットして、
  1241  // メインモジュールのすべてのパッケージをビルドおよびテストするために必要なすべてのパッケージを含めます。
  1242  // ベンダー化されたパッケージのテストコードは含まれません。
  1243  //
  1244  // -vフラグは、ベンダーがベンダー化されたモジュールとパッケージの名前を標準エラーに印刷するようにします。
  1245  //
  1246  // -eフラグは、パッケージのロード中にエラーが発生した場合でも、ベンダーが処理を続行しようとするようにします。
  1247  //
  1248  // -oフラグは、ベンダーが指定されたパスにベンダーディレクトリを作成するようにします。
  1249  // "vendor"ではない。goコマンドはモジュールのルートディレクトリ内の"vendor"という名前のベンダーディレクトリのみを使用できるため、
  1250  // このフラグは主に他のツールに有用です。
  1251  //
  1252  // 'go mod vendor'についての詳細は、https://golang.org/ref/mod#go-mod-vendor を参照してください。
  1253  //
  1254  // # Verify dependencies have expected content
  1255  //
  1256  // 使用法:
  1257  //
  1258  //	go mod verify
  1259  //
  1260  // Verifyは、現在のモジュールの依存関係が、ローカルのダウンロード済みソースキャッシュに保存されているものが、
  1261  // ダウンロードされてから変更されていないことを確認します。すべてのモジュールが変更されていない場合、
  1262  // verifyは"all modules verified."を印刷します。それ以外の場合、どのモジュールが変更されたかを報告し、
  1263  // 'go mod'が非ゼロのステータスで終了する原因となります。
  1264  //
  1265  // 'go mod verify'についての詳細は、https://golang.org/ref/mod#go-mod-verify を参照してください。
  1266  //
  1267  // # Explain why packages or modules are needed
  1268  //
  1269  // 使用法:
  1270  //
  1271  //	go mod why [-m] [-vendor] packages...
  1272  //
  1273  // Whyは、メインモジュールからリスト化された各パッケージへのインポートグラフの最短パスを表示します。
  1274  // -mフラグが指定されている場合、whyは引数をモジュールのリストとして扱い、各モジュール内の任意のパッケージへのパスを見つけます。
  1275  //
  1276  // デフォルトでは、whyは"go list all"によってマッチしたパッケージのグラフを問い合わせます。
  1277  // これには、到達可能なパッケージのテストが含まれます。-vendorフラグを指定すると、whyは依存関係のテストを除外します。
  1278  //
  1279  // 出力は、コマンドライン上の各パッケージまたはモジュール名に対して、空行で区切られたスタンザのシーケンスです。
  1280  // 各スタンザは、ターゲットパッケージまたはモジュールを示す"# package"または"# module"のコメント行で始まります。
  1281  // 続く行は、インポートグラフを通じたパスを1行に1つのパッケージで示します。パッケージまたはモジュールがメインモジュールから参照されていない場合、
  1282  // スタンザはその事実を示す単一の括弧付きノートを表示します。
  1283  //
  1284  // 例えば:
  1285  //
  1286  //	$ go mod why golang.org/x/text/language golang.org/x/text/encoding
  1287  //	# golang.org/x/text/language
  1288  //	rsc.io/quote
  1289  //	rsc.io/sampler
  1290  //	golang.org/x/text/language
  1291  //
  1292  //	# golang.org/x/text/encoding
  1293  //	(main module does not need package golang.org/x/text/encoding)
  1294  //	$
  1295  //
  1296  // 'go mod why'についての詳細は、https://golang.org/ref/mod#go-mod-why を参照してください。
  1297  //
  1298  // # Workspace maintenance
  1299  //
  1300  // Workは、ワークスペースの操作へのアクセスを提供します。
  1301  //
  1302  // ワークスペースのサポートは、'go work'だけでなく、他の多くのコマンドに組み込まれていることに注意してください。
  1303  //
  1304  // Goのモジュールシステムについての情報は、'go help modules'を参照してください。ワークスペースはその一部です。
  1305  //
  1306  // ワークスペースについての詳細なリファレンスは、https://go.dev/ref/mod#workspaces を参照してください。
  1307  //
  1308  // ワークスペースについての入門チュートリアルは、https://go.dev/doc/tutorial/workspaces を参照してください。
  1309  //
  1310  // ワークスペースは、"use"ディレクティブで一連のモジュールディレクトリを指定するgo.workファイルによって指定されます。
  1311  // これらのモジュールは、ビルドや関連操作のためのルートモジュールとしてgoコマンドによって使用されます。
  1312  // 使用するモジュールを指定しないワークスペースは、ローカルモジュールからのビルドを行うためには使用できません。
  1313  //
  1314  // go.workファイルは行指向です。各行は単一のディレクティブを保持し、
  1315  // キーワードに続く引数で構成されます。例えば:
  1316  //
  1317  //	go 1.18
  1318  //
  1319  //	use ../foo/bar
  1320  //	use ./baz
  1321  //
  1322  //	replace example.com/foo v1.2.3 => example.com/bar v1.4.5
  1323  //
  1324  // 先頭のキーワードは、Goのインポートのように、隣接する行からブロックを作成するために要素化できます。
  1325  //
  1326  //	use (
  1327  //	  ../foo/bar
  1328  //	  ./baz
  1329  //	)
  1330  //
  1331  // useディレクティブは、ワークスペースのメインモジュールのセットに含めるモジュールを指定します。
  1332  // useディレクティブの引数は、モジュールのgo.modファイルが含まれるディレクトリです。
  1333  //
  1334  // goディレクティブは、ファイルが書かれたGoのバージョンを指定します。将来的にワークスペースのセマンティクスに
  1335  // 変更がある可能性があり、このバージョンによって制御されるかもしれませんが、現時点では指定されたバージョンは
  1336  // 効果がありません。
  1337  //
  1338  // replaceディレクティブは、go.modファイル内のreplaceディレクティブと同じ構文を持ち、go.modファイル内のreplaceよりも
  1339  // 優先されます。これは主に、異なるワークスペースモジュール内の競合するreplaceを上書きするために意図されています。
  1340  //
  1341  // goコマンドがワークスペースモードで動作しているかどうかを判断するには、"go env GOWORK"コマンドを使用します。
  1342  // これにより、使用されているワークスペースファイルが指定されます。
  1343  //
  1344  // 使用法:
  1345  //
  1346  //	go work <コマンド> [引数]
  1347  //
  1348  // コマンドは以下の通りです:
  1349  //
  1350  //	edit        ツールやスクリプトからgo.workを編集
  1351  //	init        ワークスペースファイルを初期化
  1352  //	sync        ワークスペースのビルドリストをモジュールに同期
  1353  //	use         ワークスペースファイルにモジュールを追加
  1354  //	vendor      make vendored copy of dependencies
  1355  //
  1356  // コマンドについての詳細な情報は "go help work <コマンド>" を使用してください。
  1357  //
  1358  // # Edit go.work from tools or scripts
  1359  //
  1360  // 使用法:
  1361  //
  1362  //	go work edit [編集フラグ] [go.work]
  1363  //
  1364  // Editは、主にツールやスクリプトによる使用を目的とした、go.workの編集用のコマンドラインインターフェースを提供します。
  1365  // それはgo.workのみを読み取り、関与するモジュールについての情報を検索しません。
  1366  // ファイルが指定されていない場合、Editは現在のディレクトリとその親ディレクトリでgo.workファイルを探します。
  1367  //
  1368  // 編集フラグは一連の編集操作を指定します。
  1369  //
  1370  // -fmtフラグは、他の変更を行わずにgo.workファイルを再フォーマットします。
  1371  // この再フォーマットは、go.modファイルの使用や書き換えを伴う他の修正にも含まれます。
  1372  // このフラグが必要な唯一の時期は、他のフラグが指定されていない場合、つまり 'go work edit -fmt' のような場合です。
  1373  //
  1374  // -use=pathおよび-dropuse=pathフラグは、
  1375  // go.workファイルのモジュールディレクトリのセットにuseディレクティブを追加および削除します。
  1376  //
  1377  // -replace=old[@v]=new[@v]フラグは、指定された
  1378  // モジュールパスとバージョンのペアの置換を追加します。old@vの@vが省略された場合、
  1379  // 左側にバージョンがない置換が追加され、oldモジュールパスのすべてのバージョンに適用されます。
  1380  // new@vの@vが省略された場合、新しいパスはモジュール
  1381  // パスではなく、ローカルのモジュールルートディレクトリであるべきです。
  1382  // -replaceはold[@v]の冗長な置換を上書きすることに注意してください。
  1383  // したがって、@vを省略すると、特定のバージョンの既存の置換が削除されます。
  1384  //
  1385  // -dropreplace=old[@v]フラグは、指定された
  1386  // モジュールパスとバージョンのペアの置換を削除します。@vが省略された場合、
  1387  // 左側にバージョンがない置換が削除されます。
  1388  //
  1389  // -use、-dropuse、-replace、および -dropreplaceの編集フラグは、
  1390  // 繰り返すことができ、与えられた順序で変更が適用されます。
  1391  //
  1392  // -go=versionフラグは、期待されるGo言語のバージョンを設定します。
  1393  //
  1394  // -toolchain=nameフラグは、使用するGoツールチェーンを設定します。
  1395  //
  1396  // -printフラグは、最終的なgo.workをテキスト形式で印刷し、
  1397  // go.modに書き戻す代わりに表示します。
  1398  //
  1399  // -jsonフラグは、最終的なgo.workファイルをJSON形式で印刷し、
  1400  // go.modに書き戻す代わりに表示します。JSON出力は以下のGo型に対応します:
  1401  //
  1402  //	type GoWork struct {
  1403  //		Go        string
  1404  //		Toolchain string
  1405  //		Use       []Use
  1406  //		Replace   []Replace
  1407  //	}
  1408  //
  1409  //	type Use struct {
  1410  //		DiskPath   string
  1411  //		ModulePath string
  1412  //	}
  1413  //
  1414  //	type Replace struct {
  1415  //		Old Module
  1416  //		New Module
  1417  //	}
  1418  //
  1419  //	type Module struct {
  1420  //		Path    string
  1421  //		Version string
  1422  //	}
  1423  //
  1424  // 詳細情報については、https://go.dev/ref/mod#workspaces のワークスペースリファレンスを参照してください。
  1425  //
  1426  // # Initialize workspace file
  1427  //
  1428  // 使用法:
  1429  //
  1430  //	go work init [moddirs]
  1431  //
  1432  // Initは、新しいgo.workファイルを現在のディレクトリに初期化し、書き込むことで、
  1433  // 現在のディレクトリに新しいワークスペースを作成します。
  1434  //
  1435  // go work initは、ワークスペースモジュールへのパスを引数としてオプションで受け入れます。
  1436  // 引数が省略された場合、モジュールがない空のワークスペースが作成されます。
  1437  //
  1438  // 各引数パスは、go.workファイルのuseディレクティブに追加されます。
  1439  // 現在のgoバージョンもgo.workファイルに記載されます。
  1440  //
  1441  // 詳細情報については、https://go.dev/ref/mod#workspaces のワークスペースリファレンスを参照してください。
  1442  //
  1443  // # Sync workspace build list to modules
  1444  //
  1445  // 使用法:
  1446  //
  1447  //	go work sync
  1448  //
  1449  // Syncは、ワークスペースのビルドリストをワークスペースのモジュールに同期します。
  1450  //
  1451  // ワークスペースのビルドリストは、ワークスペース内でビルドを行うために使用されるすべての
  1452  // (トランジティブな)依存モジュールのバージョンのセットです。go work syncは、
  1453  // 最小バージョン選択アルゴリズムを使用してそのビルドリストを生成し、
  1454  // そのバージョンをワークスペース内で指定された各モジュールに同期します(useディレクティブで)。
  1455  //
  1456  // 同期は、ワークスペースモジュールで指定された各依存モジュールを、
  1457  // 依存モジュールのバージョンがすでにビルドリストのバージョンと同じでない場合、
  1458  // ビルドリストのバージョンに順次アップグレードすることによって行われます。
  1459  // 最小バージョン選択が、各モジュールのビルドリストのバージョンが常に各ワークスペースモジュールの
  1460  // バージョンと同じかそれ以上であることを保証することに注意してください。
  1461  //
  1462  // 詳細情報については、https://go.dev/ref/mod#workspaces のワークスペースリファレンスを参照してください。
  1463  //
  1464  // # Add modules to workspace file
  1465  //
  1466  // 使用法:
  1467  //
  1468  //	go work use [-r] [moddirs]
  1469  //
  1470  // Useは、ディレクトリをオプションで再帰的にgo.workファイルに追加するための
  1471  // コマンドラインインターフェースを提供します。
  1472  //
  1473  // コマンドライン上の各引数ディレクトリに対してuseディレクティブがgo.workファイルに追加されます。
  1474  // それが存在する場合はgo.workファイルに、存在しない場合はgo.workファイルから削除されます。
  1475  // 残りのuseディレクティブが存在しないモジュールを参照している場合、Useは失敗します。
  1476  //
  1477  // Useは、go.workのgo行を更新して、使用されるモジュールのすべてのgo行と同じか
  1478  // それ以上のバージョンを指定します。これは、既存のものと新しく追加されたものの両方です。
  1479  // 引数がない場合、この更新はgo work useが行う唯一のことです。
  1480  //
  1481  // -rフラグは、引数ディレクトリでモジュールを再帰的に検索し、
  1482  // useコマンドは、それぞれのディレクトリが引数として指定されたかのように動作します:
  1483  // つまり、存在するディレクトリにはuseディレクティブが追加され、存在しないディレクトリには削除されます。
  1484  //
  1485  // 詳細情報については、https://go.dev/ref/mod#workspaces のワークスペースリファレンスを参照してください。
  1486  //
  1487  // # Make vendored copy of dependencies
  1488  //
  1489  // 使用法:
  1490  //
  1491  //	go work vendor [-e] [-v] [-o outdir]
  1492  //
  1493  // Vendorは、ワークスペースのすべてのパッケージをビルドし、テストするために必要なすべてのパッケージを含むように
  1494  // ワークスペースのベンダーディレクトリをリセットします。
  1495  // ベンダードパッケージのテストコードは含まれません。
  1496  //
  1497  // -vフラグは、ベンダードモジュールとパッケージの名前を標準エラーに出力するようにvendorに指示します。
  1498  //
  1499  // -eフラグは、パッケージのロード中にエラーが発生した場合でもvendorが処理を続行しようとするようにします。
  1500  //
  1501  // -oフラグは、vendorが"vendor"ではなく指定されたパスにベンダーディレクトリを作成するようにします。
  1502  // goコマンドはモジュールのルートディレクトリ内の"vendor"という名前のベンダーディレクトリしか使用できないため、
  1503  // このフラグは主に他のツールにとって有用です。
  1504  //
  1505  // # Compile and run Go program
  1506  //
  1507  // 使用法:
  1508  //
  1509  //	go run [build flags] [-exec xprog] package [arguments...]
  1510  //
  1511  // Runは、指定されたmain Goパッケージをコンパイルして実行します。
  1512  // 通常、パッケージは単一のディレクトリからの.goソースファイルのリストとして指定されますが、
  1513  // インポートパス、ファイルシステムパス、または 'go run .' や 'go run my/cmd' のように
  1514  // 単一の既知のパッケージに一致するパターンでもかまいません。
  1515  //
  1516  // パッケージ引数にバージョン接尾辞(@latestや@v1.0.0のような)がある場合、
  1517  // "go run"はモジュール対応モードでプログラムをビルドし、現在のディレクトリや
  1518  // ある場合は親ディレクトリのgo.modファイルを無視します。これは、メインモジュールの
  1519  // 依存関係に影響を与えずにプログラムを実行するのに便利です。
  1520  //
  1521  // パッケージ引数にバージョン接尾辞がない場合、"go run"はGO111MODULE環境変数と
  1522  // go.modファイルの存在に応じて、モジュール対応モードまたはGOPATHモードで実行されるかもしれません。
  1523  // 詳細は 'go help modules' を参照してください。モジュール対応モードが有効になっている場合、
  1524  // "go run"はメインモジュールのコンテキストで実行されます。
  1525  //
  1526  // デフォルトでは、'go run'はコンパイルされたバイナリを直接実行します:'a.out arguments...'.
  1527  // -execフラグが指定されている場合、'go run'はxprogを使用してバイナリを起動します:
  1528  //
  1529  //	'xprog a.out arguments...'.
  1530  //
  1531  // -execフラグが指定されていない場合、GOOSまたはGOARCHがシステムのデフォルトと異なり、
  1532  // そしてプログラム名がgo_$GOOS_$GOARCH_execで見つかる場合、
  1533  // 'go run'はそのプログラムを使用してバイナリを起動します。
  1534  // 例えば 'go_js_wasm_exec a.out arguments...'. これにより、シミュレーターや他の実行方法が
  1535  // 利用可能な場合にクロスコンパイルされたプログラムを実行できます。
  1536  //
  1537  // デフォルトでは、'go run'はビルド時間を短縮するためにデバッガーが使用する情報を生成せずに
  1538  // バイナリをコンパイルします。バイナリにデバッガー情報を含めるには、'go build'を使用します。
  1539  //
  1540  // Runの終了ステータスは、コンパイルされたバイナリの終了ステータスではありません。
  1541  //
  1542  // ビルドフラグについての詳細は、'go help build'を参照してください。
  1543  // パッケージの指定についての詳細は、'go help packages'を参照してください。
  1544  //
  1545  // 参照:go build.
  1546  //
  1547  // # Test packages
  1548  //
  1549  // 使用法:
  1550  //
  1551  //	go test [ビルド/テストフラグ] [パッケージ] [ビルド/テストフラグ & テストバイナリフラグ]
  1552  //
  1553  // 'Go test'は、インポートパスで指定されたパッケージのテストを自動化します。
  1554  // テスト結果の概要を以下の形式で出力します:
  1555  //
  1556  //	ok   archive/tar   0.011s
  1557  //	FAIL archive/zip   0.022s
  1558  //	ok   compress/gzip 0.033s
  1559  //	...
  1560  //
  1561  // その後、失敗したパッケージごとの詳細な出力が続きます。
  1562  //
  1563  // 'Go test'は、ファイルパターン "*_test.go" に一致する名前のファイルと共に各パッケージを再コンパイルします。
  1564  // これらの追加ファイルには、テスト関数、ベンチマーク関数、ファズテスト、例示関数が含まれることがあります。
  1565  // 詳細は 'go help testfunc' を参照してください。
  1566  // リストされた各パッケージは、別々のテストバイナリの実行を引き起こします。
  1567  // 名前が "_"("_test.go" を含む)または "." で始まるファイルは無視されます。
  1568  //
  1569  // "_test"という接尾辞でパッケージを宣言するテストファイルは、
  1570  // 別のパッケージとしてコンパイルされ、その後、メインのテストバイナリとリンクして実行されます。
  1571  //
  1572  // goツールは "testdata"という名前のディレクトリを無視し、
  1573  // テストに必要な補助的なデータを保持するために利用可能にします。
  1574  //
  1575  // テストバイナリをビルドする一部として、go testはgo vetをパッケージと
  1576  // そのテストソースファイルに対して実行し、重大な問題を特定します。もしgo vetが
  1577  // 何か問題を見つけた場合、go testはそれらを報告し、テストバイナリを実行しません。
  1578  // 使われるのは、デフォルトのgo vetチェックの高信頼度のサブセットだけです。
  1579  // そのサブセットは次の通りです:atomic, bool, buildtags, directive, errorsas,
  1580  // ifaceassert, nilfunc, printf, そして stringintconv。これらと他のvetテストの
  1581  // ドキュメンテーションは "go doc cmd/vet"を通じて見ることができます。
  1582  // go vetの実行を無効にするには、-vet=offフラグを使用します。すべての
  1583  // チェックを実行するには、-vet=allフラグを使用します。
  1584  //
  1585  // すべてのテスト出力とサマリーラインは、テストが自身の標準エラーにそれらを出力したとしても、
  1586  // goコマンドの標準出力に印刷されます。(goコマンドの標準エラーは、テストのビルドエラーを印刷するために予約されています。)
  1587  //
  1588  // goコマンドは、テストの環境で$PATHの先頭に$GOROOT/binを配置します。
  1589  // これにより、'go'コマンドを実行するテストは、親の'go test'コマンドと同じ'go'を使用します。
  1590  //
  1591  // Goテストは2つの異なるモードで実行されます:
  1592  //
  1593  // 最初のモードは、ローカルディレクトリモードと呼ばれ、go testがパッケージ引数なしで
  1594  // 呼び出されたときに発生します(例えば、'go test'または'go test -v')。このモードでは、
  1595  // go testは現在のディレクトリにあるパッケージソースとテストをコンパイルし、
  1596  // 結果として得られたテストバイナリを実行します。このモードでは、キャッシング(以下で説明)は無効化されます。
  1597  // パッケージテストが終了した後、go testはテストステータス('ok'または'FAIL')、パッケージ名、
  1598  // 経過時間を示すサマリーラインを印刷します。
  1599  //
  1600  // 二つ目は、パッケージリストモードと呼ばれ、go testが明示的なパッケージ引数と共に呼び出されたときに発生します
  1601  // (例えば 'go test math', 'go test ./...', そして 'go test .')。このモードでは、go testは
  1602  // コマンドラインにリストされた各パッケージをコンパイルし、テストします。パッケージテストが通過すると、
  1603  // go testは最終的な 'ok' サマリーラインのみを印刷します。パッケージテストが失敗すると、go testは
  1604  // フルのテスト出力を印刷します。-benchフラグまたは-vフラグと共に呼び出されると、go testは
  1605  // パッケージテストが通過してもフルの出力を印刷します。これは、要求されたベンチマーク結果や
  1606  // 詳細なログを表示するためです。リストされたすべてのパッケージのパッケージテストが終了し、
  1607  // その出力が印刷された後、go testはパッケージテストがいずれかで失敗した場合に最終的な 'FAIL' ステータスを印刷します。
  1608  //
  1609  // パッケージリストモードのみで、go testは成功したパッケージテストの結果をキャッシュして、
  1610  // テストの不必要な繰り返し実行を避けます。テストの結果がキャッシュから回復できるとき、
  1611  // go testはテストバイナリを再度実行する代わりに前回の出力を再表示します。これが発生すると、
  1612  // go testはサマリーラインの経過時間の代わりに '(cached)' を印刷します。
  1613  //
  1614  // キャッシュ内の一致のルールは、同じテストバイナリが実行され、コマンドライン上のフラグがすべて
  1615  // 'キャッシュ可能'なテストフラグの制限されたセットから来るというものです。これには、-benchtime、-cpu、
  1616  // -list、-parallel、-run、-short、-timeout、-failfast、-fullpath、-vが含まれます。
  1617  // go testの実行がこのセット外の任意のテストフラグまたは非テストフラグを持つ場合、
  1618  // 結果はキャッシュされません。テストキャッシュを無効にするには、キャッシュ可能なフラグ以外の
  1619  // 任意のテストフラグまたは引数を使用します。テストキャッシュを明示的に無効にする慣用的な方法は
  1620  // -count=1を使用することです。パッケージのソースルート内(通常は$GOPATH)でファイルを開くテストや、
  1621  // 環境変数を参照するテストは、ファイルと環境変数が変更されない未来の実行とのみ一致します。
  1622  // キャッシュされたテスト結果はまったく時間がかからないとして扱われるため、成功したパッケージテスト結果は
  1623  // -timeout設定に関係なくキャッシュされ、再利用されます。
  1624  //
  1625  // ビルドフラグに加えて、'go test'自体が処理するフラグは以下の通りです:
  1626  //
  1627  //	-args
  1628  //	    コマンドラインの残りの部分(-argsの後のすべて)を、解釈せずに変更せずにテストバイナリに渡します。
  1629  //	    このフラグはコマンドラインの残りの部分を消費するため、パッケージリスト(存在する場合)はこのフラグの前に表示される必要があります。
  1630  //
  1631  //	-c
  1632  //	    テストバイナリを現在のディレクトリのpkg.testにコンパイルしますが、実行はしません
  1633  //	    (ここで、pkgはパッケージのインポートパスの最後の要素です)。
  1634  //	    ファイル名またはターゲットディレクトリは-oフラグで変更できます。
  1635  //
  1636  //	-exec xprog
  1637  //	    xprogを使用してテストバイナリを実行します。振る舞いは
  1638  //	    'go run'と同じです。詳細は'go help run'を参照してください。
  1639  //
  1640  //	-json
  1641  //	    テスト出力を自動処理に適したJSONに変換します。
  1642  //	    エンコーディングの詳細については'go doc test2json'を参照してください。
  1643  //
  1644  //	-o file
  1645  //	    テストバイナリを指定したファイルにコンパイルします。
  1646  //	    テストはまだ実行されます(-cまたは-iが指定されていない限り)。
  1647  //	    もしファイルがスラッシュで終わっているか、既存のディレクトリを指定している場合、
  1648  //	    テストはそのディレクトリのpkg.testに書き込まれます。
  1649  //
  1650  // テストバイナリは、テストの実行を制御するフラグも受け入れます。これらの
  1651  // フラグは'go test'でもアクセス可能です。詳細は'go help testflag'を参照してください。
  1652  //
  1653  // ビルドフラグについての詳細は、'go help build'を参照してください。
  1654  // パッケージの指定についての詳細は、'go help packages'を参照してください。
  1655  //
  1656  // 参照:go build, go vet.
  1657  //
  1658  // # Run specified go tool
  1659  //
  1660  // 使用法:
  1661  //
  1662  //	go tool [-n] command [args...]
  1663  //
  1664  // Toolは、引数で識別されるgoツールコマンドを実行します。
  1665  // 引数がない場合、既知のツールのリストを表示します。
  1666  //
  1667  // -nフラグは、toolに実行されるコマンドを表示させるが実行はさせないようにします。
  1668  //
  1669  // 各ツールコマンドの詳細については、'go doc cmd/<command>'を参照してください。
  1670  //
  1671  // # Print Go version
  1672  //
  1673  // 使用法:
  1674  //
  1675  //	go version [-m] [-v] [file ...]
  1676  //
  1677  // Versionは、Goバイナリファイルのビルド情報を表示します。
  1678  //
  1679  // Go versionは、指定された各ファイルをビルドするために使用されたGoのバージョンを報告します。
  1680  //
  1681  // コマンドライン上でファイルが指定されていない場合、go versionは自身の
  1682  // バージョン情報を表示します。
  1683  //
  1684  // ディレクトリが指定されている場合、go versionはそのディレクトリを再帰的に走査し、
  1685  // 認識されたGoのバイナリを探し、そのバージョンを報告します。
  1686  // デフォルトでは、go versionはディレクトリスキャン中に見つかった認識されないファイルを報告しません。
  1687  // -vフラグを使用すると、認識されないファイルを報告します。
  1688  //
  1689  // -mフラグを使用すると、go versionは各ファイルの埋め込まれた
  1690  // モジュールバージョン情報を表示します(利用可能な場合)。出力では、モジュール
  1691  // 情報はバージョンラインに続く複数の行で構成され、各行は先頭のタブ文字でインデントされます。
  1692  //
  1693  // 参照:go doc runtime/debug.BuildInfo.
  1694  //
  1695  // # Report likely mistakes in packages
  1696  //
  1697  // 使用法:
  1698  //
  1699  //	go vet [ビルドフラグ] [-vettool prog] [vetフラグ] [パッケージ]
  1700  //
  1701  // Vetは、インポートパスで指定されたパッケージに対してGo vetコマンドを実行します。
  1702  //
  1703  // vetとそのフラグについての詳細は、'go doc cmd/vet'を参照してください。
  1704  // パッケージの指定についての詳細は、'go help packages'を参照してください。
  1705  // チェッカーとそのフラグのリストについては、'go tool vet help'を参照してください。
  1706  // 'printf'のような特定のチェッカーの詳細については、'go tool vet help printf'を参照してください。
  1707  //
  1708  // -vettool=progフラグは、代替または追加のチェックを持つ別の分析ツールを選択します。
  1709  // 例えば、'shadow'アナライザは、これらのコマンドを使用してビルドおよび実行できます:
  1710  //
  1711  //	go install golang.org/x/tools/go/analysis/passes/shadow/cmd/shadow@latest
  1712  //	go vet -vettool=$(which shadow)
  1713  //
  1714  // go vetがサポートするビルドフラグは、パッケージの解決と実行を制御するものです。
  1715  // 例えば、-C, -n, -x, -v, -tags, そして -toolexecです。
  1716  // これらのフラグについての詳細は、'go help build'を参照してください。
  1717  //
  1718  // 参照:go fmt, go fix.
  1719  //
  1720  // # Build constraints
  1721  //
  1722  // ビルド制約、またはビルドタグとは、ファイルがパッケージに含まれるべき条件です。
  1723  // ビルド制約は次のように始まる行コメントで与えられます:
  1724  //
  1725  //	//go:build
  1726  //
  1727  // 制約は任意の種類のソースファイル(Goだけでなく)に現れることができますが、
  1728  // ファイルの先頭近く、空行や他のコメントだけが先行する位置に現れなければなりません。
  1729  // これらのルールは、Goファイルではビルド制約がパッケージ句の前に現れなければならないことを意味します。
  1730  //
  1731  // ビルド制約とパッケージのドキュメンテーションを区別するために、
  1732  // ビルド制約の後には空行を入れるべきです。
  1733  //
  1734  // ビルド制約コメントは、||、&&、および!演算子および括弧によって組み合わされた
  1735  // ビルドタグを含む式として評価されます。演算子はGoと同じ意味を持ちます。
  1736  //
  1737  // 例えば、次のビルド制約は、"linux"と"386"の制約が満たされているとき、または
  1738  // "darwin"が満たされていて"cgo"が満たされていないときに、ファイルをビルドするように制約します:
  1739  //
  1740  //	//go:build (linux && 386) || (darwin && !cgo)
  1741  //
  1742  // ファイルに複数の//go:build行がある場合はエラーです。
  1743  //
  1744  // 特定のビルド中に、以下のビルドタグが満たされます:
  1745  //
  1746  //   - ターゲットとなるオペレーティングシステム、runtime.GOOSによって表現され、
  1747  //     GOOS環境変数で設定されます。
  1748  //   - ターゲットとなるアーキテクチャ、runtime.GOARCHによって表現され、
  1749  //     GOARCH環境変数で設定されます。
  1750  //   - 任意のアーキテクチャ機能、GOARCH.featureの形式で
  1751  //     (例えば、"amd64.v2")、詳細は以下を参照してください。
  1752  //   - "unix"、もしGOOSがUnixまたはUnix風のシステムである場合。
  1753  //   - 使用されているコンパイラ、"gc"または"gccgo"
  1754  //   - "cgo"、もしcgoコマンドがサポートされている場合('go help environment'のCGO_ENABLEDを参照)。
  1755  //   - 各Goメジャーリリースに対する用語、現在のバージョンまで:
  1756  //     Goバージョン1.1以降は"go1.1"、Go 1.12からは"go1.12"、など。
  1757  //   - -tagsフラグによって与えられた任意の追加タグ('go help build'を参照)。
  1758  //
  1759  // ベータ版やマイナーリリースに対する別のビルドタグはありません。
  1760  //
  1761  // ファイル名が、拡張子と可能な_test接尾辞を削除した後、以下のパターンのいずれかと一致する場合:
  1762  //
  1763  //	*_GOOS
  1764  //	*_GOARCH
  1765  //	*_GOOS_GOARCH
  1766  //
  1767  // (例:source_windows_amd64.go) ここで、GOOSとGOARCHはそれぞれ任意の既知のオペレーティングシステムと
  1768  // アーキテクチャの値を表します。その場合、ファイルはそれらの項目を必要とする暗黙のビルド制約を持つと
  1769  // 考えられます(ファイル内の明示的な制約に加えて)。
  1770  //
  1771  // GOOS=androidを使用すると、androidのタグとファイルに加えて、GOOS=linuxのビルドタグとファイルに一致します。
  1772  //
  1773  // GOOS=illumosを使用すると、illumosのタグとファイルに加えて、GOOS=solarisのビルドタグとファイルに一致します。
  1774  //
  1775  // GOOS=iosを使用すると、iosのタグとファイルに加えて、GOOS=darwinのビルドタグとファイルに一致します。
  1776  //
  1777  // 定義されたアーキテクチャ機能のビルドタグは以下の通りです:
  1778  //
  1779  //   - GOARCH=386の場合、GO386=387とGO386=sse2は
  1780  //     それぞれ386.387と386.sse2のビルドタグを設定します。
  1781  //   - GOARCH=amd64の場合、GOAMD64=v1、v2、v3は
  1782  //     amd64.v1、amd64.v2、amd64.v3の機能ビルドタグに対応します。
  1783  //   - GOARCH=armの場合、GOARM=5、6、7は
  1784  //     arm.5、arm.6、arm.7の機能ビルドタグに対応します。
  1785  //   - GOARCH=arm64の場合、GOARM64=v8.{0-9}とv9.{0-5}は
  1786  //     arm64.v8.{0-9}とarm64.v9.{0-5}の機能ビルドタグに対応します。
  1787  //   - GOARCH=mipsまたはmipsleの場合、
  1788  //     GOMIPS=hardfloatとsoftfloatは
  1789  //     mips.hardfloatとmips.softfloat
  1790  //     (またはmipsle.hardfloatとmipsle.softfloat)の機能ビルドタグに対応します。
  1791  //   - GOARCH=mips64またはmips64leの場合、
  1792  //     GOMIPS64=hardfloatとsoftfloatは
  1793  //     mips64.hardfloatとmips64.softfloat
  1794  //     (またはmips64le.hardfloatとmips64le.softfloat)の機能ビルドタグに対応します。
  1795  //   - GOARCH=ppc64またはppc64leの場合、
  1796  //     GOPPC64=power8、power9、power10は
  1797  //     ppc64.power8、ppc64.power9、ppc64.power10
  1798  //     (またはppc64le.power8、ppc64le.power9、ppc64le.power10)
  1799  //     の機能ビルドタグに対応します。
  1800  //   - GOARCH=riscv64の場合、
  1801  //     GORISCV64=rva20u64とrva22u64はriscv64.rva20u64
  1802  //     とriscv64.rva22u64のビルドタグに対応します。
  1803  //   - GOARCH=wasmの場合、GOWASM=satconvとsignextは
  1804  //     wasm.satconvとwasm.signextの機能ビルドタグに対応します。
  1805  //
  1806  // GOARCH=amd64、arm、ppc64、ppc64le、riscv64の場合、特定の機能レベルは
  1807  // すべての前のレベルの機能ビルドタグも設定します。
  1808  // 例えば、GOAMD64=v2はamd64.v1とamd64.v2の機能フラグを設定します。
  1809  // これにより、v2の機能を使用するコードは、たとえば、GOAMD64=v4が導入されたときでも
  1810  // コンパイルを続けることが保証されます。
  1811  // 特定の機能レベルの欠如を処理するコードは、否定を使用するべきです:
  1812  //
  1813  //	//go:build !amd64.v2
  1814  //
  1815  // ファイルがどのビルドでも考慮されないようにするには:
  1816  //
  1817  //	//go:build ignore
  1818  //
  1819  // (他の満たされない単語でも機能しますが、"ignore"が慣習的です。)
  1820  //
  1821  // ファイルをcgoを使用してのみビルドし、LinuxとOS Xでのみビルドするには:
  1822  //
  1823  //	//go:build cgo && (linux || darwin)
  1824  //
  1825  // そのようなファイルは通常、他のシステムのデフォルトの機能を実装する
  1826  // 別のファイルとペアになり、この場合、制約を持つことになります:
  1827  //
  1828  //	//go:build !(cgo && (linux || darwin))
  1829  //
  1830  // ファイル名をdns_windows.goとすると、Windows用のパッケージをビルドするときにのみ
  1831  // 含まれます。同様に、math_386.sは32ビットx86のパッケージをビルドするときにのみ含まれます。
  1832  //
  1833  // Goのバージョン1.16以前では、ビルド制約には異なる構文が使用されていました。
  1834  // それは"// +build"プレフィックスでした。gofmtコマンドは、古い構文に遭遇すると、
  1835  // 同等の//go:build制約を追加します。
  1836  //
  1837  // # Build modes
  1838  //
  1839  // 'go build'と'go install'コマンドは-buildmode引数を取り、
  1840  // どの種類のオブジェクトファイルをビルドするかを示します。現在サポートされている値は以下の通りです:
  1841  //
  1842  //	-buildmode=archive
  1843  //		リストされた非メインパッケージを.aファイルにビルドします。mainと名付けられたパッケージは無視されます。
  1844  //
  1845  //	-buildmode=c-archive
  1846  //		リストされたメインパッケージとそれがインポートするすべてのパッケージを
  1847  //		Cアーカイブファイルにビルドします。呼び出し可能なシンボルは、cgo //exportコメントを使用して
  1848  //		エクスポートされた関数だけになります。リストされるメインパッケージは1つだけでなければなりません。
  1849  //
  1850  //	-buildmode=c-shared
  1851  //		リストされたメインパッケージとそれがインポートするすべてのパッケージを
  1852  //		C共有ライブラリにビルドします。呼び出し可能なシンボルは、cgo //exportコメントを使用して
  1853  //		エクスポートされた関数だけになります。リストされるメインパッケージは1つだけでなければなりません。
  1854  //
  1855  //	-buildmode=default
  1856  //		リストされたメインパッケージは実行可能ファイルに、リストされた非メインパッケージは.aファイルに
  1857  //		ビルドされます(デフォルトの挙動)。
  1858  //
  1859  //	-buildmode=shared
  1860  //		リストされたすべての非メインパッケージを単一の共有ライブラリに結合し、
  1861  //		-linksharedオプションでビルドする際に使用します。mainと名付けられたパッケージは無視されます。
  1862  //
  1863  //	-buildmode=exe
  1864  //		リストされたメインパッケージとそれらがインポートするすべてを実行可能ファイルにビルドします。
  1865  //		mainと名付けられていないパッケージは無視されます。
  1866  //
  1867  //	-buildmode=pie
  1868  //		リストされたメインパッケージとそれらがインポートするすべてを
  1869  //		位置独立実行可能ファイル(PIE)にビルドします。mainと名付けられていないパッケージは無視されます。
  1870  //
  1871  //	-buildmode=plugin
  1872  //		リストされたメインパッケージとそれらがインポートするすべてをGoプラグインにビルドします。
  1873  //		mainと名付けられていないパッケージは無視されます。
  1874  //
  1875  // AIXでは、-buildmode=c-archiveでビルドされたGoアーカイブを使用するCプログラムをリンクするときは、
  1876  // Cコンパイラに-Wl,-bnoobjreorderを渡す必要があります。
  1877  //
  1878  // # Calling between Go and C
  1879  //
  1880  // GoとC/C++コード間で呼び出しを行う方法は2つあります。
  1881  //
  1882  // 最初の方法は、Goディストリビューションの一部であるcgoツールです。
  1883  // その使用方法については、cgoのドキュメンテーション(go doc cmd/cgo)を参照してください。
  1884  //
  1885  // 2つ目の方法は、SWIGプログラムで、これは言語間のインターフェースを作成する一般的なツールです。
  1886  // SWIGについての情報は、http://swig.org/ を参照してください。
  1887  // go buildを実行するとき、.swig拡張子を持つ任意のファイルはSWIGに渡されます。
  1888  // .swigcxx拡張子を持つ任意のファイルは、-c++オプション付きでSWIGに渡されます。
  1889  //
  1890  // cgoまたはSWIGを使用するとき、go buildは任意の.c、.m、.s、.S
  1891  // または.sxファイルをCコンパイラに、任意の.cc、.cpp、.cxxファイルをC++
  1892  // コンパイラに渡します。CCまたはCXX環境変数を設定すると、それぞれ使用するCまたはC++
  1893  // コンパイラを決定できます。
  1894  //
  1895  // # Build and test caching
  1896  //
  1897  // goコマンドはビルドの出力をキャッシュして、将来のビルドで再利用します。
  1898  // キャッシュデータのデフォルトの場所は、現在のオペレーティングシステムの標準ユーザーキャッシュディレクトリ内の
  1899  // go-buildという名前のサブディレクトリです。GOCACHE環境変数を設定すると、このデフォルトが上書きされます。
  1900  // 'go env GOCACHE'を実行すると、現在のキャッシュディレクトリが表示されます。
  1901  //
  1902  // goコマンドは定期的に最近使用されていないキャッシュデータを削除します。
  1903  // 'go clean -cache'を実行すると、すべてのキャッシュデータが削除されます。
  1904  //
  1905  // ビルドキャッシュはGoのソースファイル、コンパイラ、コンパイラオプションなどの変更を正しく反映します。
  1906  // そのため、通常の使用ではキャッシュを明示的にクリーンアップする必要はありません。ただし、ビルドキャッシュは
  1907  // cgoでインポートされたCライブラリの変更を検出しません。システムのCライブラリに変更を加えた場合、
  1908  // キャッシュを明示的にクリーンアップするか、更新されたCライブラリに依存するパッケージの再ビルドを強制するために
  1909  // -aビルドフラグを使用する必要があります('go help build'を参照してください)。
  1910  //
  1911  // goコマンドは、成功したパッケージテストの結果もキャッシュします。
  1912  // 詳細は 'go help test' を参照してください。'go clean -testcache' を実行すると、
  1913  // すべてのキャッシュされたテスト結果が削除されます(ただし、キャッシュされたビルド結果は削除されません)。
  1914  //
  1915  // goコマンドはまた、'go test -fuzz' で使用されるファジングの値もキャッシュします。
  1916  // 具体的には、ファズ関数に渡されたときにコードカバレッジを拡大した値です。これらの値は通常のビルドや
  1917  // テストには使用されませんが、ビルドキャッシュのサブディレクトリに保存されます。
  1918  // 'go clean -fuzzcache' を実行すると、すべてのキャッシュされたファジング値が削除されます。
  1919  // これにより、一時的にファジングが効果的でなくなる可能性があります。
  1920  //
  1921  // GODEBUG環境変数を設定すると、キャッシュの状態に関するデバッグ情報の出力を有効にできます:
  1922  //
  1923  // GODEBUG=gocacheverify=1 を設定すると、goコマンドはキャッシュのエントリの使用をバイパスし、
  1924  // 代わりにすべてを再ビルドし、結果が既存のキャッシュエントリと一致するかどうかを確認します。
  1925  //
  1926  // GODEBUG=gocachehash=1 を設定すると、goコマンドはキャッシュのルックアップキーを構築するために使用する
  1927  // すべてのコンテンツハッシュの入力を出力します。出力は大量ですが、キャッシュのデバッグに役立ちます。
  1928  //
  1929  // GODEBUG=gocachetest=1 を設定すると、goコマンドはキャッシュされたテスト結果を再利用するかどうかの
  1930  // 決定についての詳細を出力します。
  1931  //
  1932  // # Environment variables
  1933  //
  1934  // goコマンドとそれが呼び出すツールは、設定のために環境変数を参照します。
  1935  // 環境変数が設定されていないか空の場合、goコマンドは適切なデフォルト設定を使用します。
  1936  // 変数<NAME>の有効な設定を見るには、'go env <NAME>'を実行します。
  1937  // デフォルト設定を変更するには、'go env -w <NAME>=<VALUE>'を実行します。
  1938  // 'go env -w'を使用して変更されたデフォルトは、os.UserConfigDirによって報告される
  1939  // ユーザーごとの設定ディレクトリに保存されるGo環境設定ファイルに記録されます。
  1940  // 設定ファイルの場所は、環境変数GOENVを設定することで変更できます。
  1941  // 'go env GOENV'は有効な場所を出力しますが、'go env -w'はデフォルトの場所を変更できません。
  1942  // 詳細は 'go help env' を参照してください。
  1943  //
  1944  // 汎用的な環境変数:
  1945  //
  1946  //	GO111MODULE
  1947  //		goコマンドがモジュール対応モードで実行するか、GOPATHモードで実行するかを制御します。
  1948  //		"off"、"on"、"auto"のいずれかになります。
  1949  //		詳細は https://golang.org/ref/mod#mod-commands を参照してください。
  1950  //	GCCGO
  1951  //		'go build -compiler=gccgo'で実行するgccgoコマンド。
  1952  //	GOARCH
  1953  //		コードをコンパイルするアーキテクチャ、またはプロセッサ。
  1954  //		例えばamd64、386、arm、ppc64など。
  1955  //	GOBIN
  1956  //		'go install'がコマンドをインストールするディレクトリ。
  1957  //	GOCACHE
  1958  //		goコマンドが将来のビルドで再利用するためのキャッシュ情報を保存するディレクトリ。
  1959  //	GOMODCACHE
  1960  //		goコマンドがダウンロードしたモジュールを保存するディレクトリ。
  1961  //	GODEBUG
  1962  //		各種デバッグ機能を有効にします。詳細は https://go.dev/doc/godebug を参照してください。
  1963  //	GOENV
  1964  //		Go環境設定ファイルの場所。
  1965  //		'go env -w'を使用して設定することはできません。
  1966  //		環境でGOENV=offを設定すると、デフォルトの設定ファイルの使用が無効になります。
  1967  //	GOFLAGS
  1968  //		デフォルトでgoコマンドに適用する-flag=value設定のスペース区切りのリスト。
  1969  //		各エントリはスタンドアロンのフラグでなければなりません。
  1970  //		エントリはスペースで区切られているため、フラグの値にはスペースを含めることはできません。
  1971  //		コマンドラインにリストされたフラグは、このリストの後に適用されるため、それを上書きします。
  1972  //	GOINSECURE
  1973  //		常に安全でない方法で取得するべきモジュールパスのプレフィックスのグロブパターンのカンマ区切りのリスト
  1974  //		(Goのpath.Matchの構文)。
  1975  //		直接取得される依存関係にのみ適用されます。
  1976  //		GOINSECUREはチェックサムデータベースの検証を無効にしません。それを達成するためにはGOPRIVATEまたは
  1977  //		GONOSUMDBを使用します。
  1978  //	GOOS
  1979  //		コードをコンパイルするオペレーティングシステム。
  1980  //		例えばlinux、darwin、windows、netbsdなど。
  1981  //	GOPATH
  1982  //		さまざまなファイルが保存される場所を制御します。詳細は 'go help gopath' を参照してください。
  1983  //	GOPROXY
  1984  //		GoモジュールプロキシのURL。詳細は https://golang.org/ref/mod#environment-variables
  1985  //		および https://golang.org/ref/mod#module-proxy を参照してください。
  1986  //	GOPRIVATE, GONOPROXY, GONOSUMDB
  1987  //		常に直接取得するべきモジュールパスのプレフィックスのグロブパターンのカンマ区切りのリスト
  1988  //		(Goのpath.Matchの構文)。
  1989  //		または、チェックサムデータベースと比較すべきでないもの。
  1990  //		詳細は https://golang.org/ref/mod#private-modules を参照してください。
  1991  //	GOROOT
  1992  //		goツリーのルート。
  1993  //	GOSUMDB
  1994  //		使用するチェックサムデータベースの名前と、オプションでその公開鍵と
  1995  //		URL。詳細は https://golang.org/ref/mod#authenticating を参照してください。
  1996  //	GOTOOLCHAIN
  1997  //		使用するGoツールチェーンを制御します。詳細は https://go.dev/doc/toolchain を参照してください。
  1998  //	GOTMPDIR
  1999  //		goコマンドが一時的なソースファイル、パッケージ、バイナリを書き込むディレクトリ。
  2000  //	GOVCS
  2001  //		一致するサーバーで使用できるバージョン管理コマンドのリスト。
  2002  //		詳細は 'go help vcs' を参照してください。
  2003  //	GOWORK
  2004  //		モジュール対応モードでは、指定されたgo.workファイルをワークスペースファイルとして使用します。
  2005  //		デフォルトまたはGOWORKが"auto"の場合、goコマンドは現在のディレクトリとその含まれるディレクトリで
  2006  //		go.workという名前のファイルを探します。有効なgo.workファイルが見つかった場合、指定されたモジュールは
  2007  //		まとめてメインモジュールとして使用されます。GOWORKが"off"、または"auto"モードでgo.workファイルが見つからない場合、
  2008  //		ワークスペースモードは無効になります。
  2009  //
  2010  // cgoを使用するための環境変数:
  2011  //
  2012  //	AR
  2013  //		gccgoコンパイラでビルドする際にライブラリアーカイブを操作するために使用するコマンド。
  2014  //		デフォルトは 'ar' です。
  2015  //	CC
  2016  //		Cコードをコンパイルするために使用するコマンド。
  2017  //	CGO_ENABLED
  2018  //		cgoコマンドがサポートされているかどうか。0または1。
  2019  //	CGO_CFLAGS
  2020  //		cgoがCコードをコンパイルする際にコンパイラに渡すフラグ。
  2021  //	CGO_CFLAGS_ALLOW
  2022  //		#cgo CFLAGSソースコードディレクティブに表示を許可する追加のフラグを指定する正規表現。
  2023  //		CGO_CFLAGS環境変数には適用されません。
  2024  //	CGO_CFLAGS_DISALLOW
  2025  //		#cgo CFLAGSソースコードディレクティブに表示を禁止するフラグを指定する正規表現。
  2026  //		CGO_CFLAGS環境変数には適用されません。
  2027  //	CGO_CPPFLAGS, CGO_CPPFLAGS_ALLOW, CGO_CPPFLAGS_DISALLOW
  2028  //		CGO_CFLAGS、CGO_CFLAGS_ALLOW、およびCGO_CFLAGS_DISALLOWと同様ですが、
  2029  //		Cプリプロセッサ用です。
  2030  //	CGO_CXXFLAGS, CGO_CXXFLAGS_ALLOW, CGO_CXXFLAGS_DISALLOW
  2031  //		CGO_CFLAGS、CGO_CFLAGS_ALLOW、およびCGO_CFLAGS_DISALLOWと同様ですが、
  2032  //		C++コンパイラ用です。
  2033  //	CGO_FFLAGS, CGO_FFLAGS_ALLOW, CGO_FFLAGS_DISALLOW
  2034  //		CGO_CFLAGS、CGO_CFLAGS_ALLOW、およびCGO_CFLAGS_DISALLOWと同様ですが、
  2035  //		Fortranコンパイラ用です。
  2036  //	CGO_LDFLAGS, CGO_LDFLAGS_ALLOW, CGO_LDFLAGS_DISALLOW
  2037  //		CGO_CFLAGS、CGO_CFLAGS_ALLOW、およびCGO_CFLAGS_DISALLOWと同様ですが、
  2038  //		リンカー用です。
  2039  //	CXX
  2040  //		C++コードをコンパイルするために使用するコマンド。
  2041  //	FC
  2042  //		Fortranコードをコンパイルするために使用するコマンド。
  2043  //	PKG_CONFIG
  2044  //		pkg-configツールへのパス。
  2045  //
  2046  // アーキテクチャ固有の環境変数:
  2047  //
  2048  //	GOARM
  2049  //		GOARCH=armの場合、コンパイルするARMアーキテクチャ。
  2050  //		有効な値は5、6、7です。
  2051  //		値の後には、浮動小数点命令の実装方法を指定するオプションを続けることができます。
  2052  //		有効なオプションは、softfloat(5のデフォルト)とhardfloat(6と7のデフォルト)です。
  2053  //	GOARM64
  2054  //		GOARCH=arm64の場合、コンパイル対象のARM64アーキテクチャ。
  2055  //		有効な値はv8.0(デフォルト)、v8.{1-9}、v9.{0-5}です。
  2056  //		値の後には、ターゲットハードウェアが実装している拡張を指定するオプションを続けることができます。
  2057  //		有効なオプションは、lseと、cryptoです。
  2058  //		一部の拡張は、特定のGOARM64バージョンからデフォルトで有効になっていることに注意してください。
  2059  //		例えば、lseはv8.1からデフォルトで有効になっています。
  2060  //	GO386
  2061  //		GOARCH=386の場合、浮動小数点命令の実装方法。
  2062  //		有効な値はsse2(デフォルト)、softfloatです。
  2063  //	GOAMD64
  2064  //		GOARCH=amd64の場合、コンパイルするマイクロアーキテクチャレベル。
  2065  //		有効な値はv1(デフォルト)、v2、v3、v4です。
  2066  //		詳細は https://golang.org/wiki/MinimumRequirements#amd64 を参照してください。
  2067  //	GOMIPS
  2068  //		GOARCH=mips{,le}の場合、浮動小数点命令を使用するかどうか。
  2069  //		有効な値はhardfloat(デフォルト)、softfloatです。
  2070  //	GOMIPS64
  2071  //		GOARCH=mips64{,le}の場合、浮動小数点命令を使用するかどうか。
  2072  //		有効な値はhardfloat(デフォルト)、softfloatです。
  2073  //	GOPPC64
  2074  //		GOARCH=ppc64{,le}の場合、ターゲットISA(Instruction Set Architecture)。
  2075  //		有効な値はpower8(デフォルト)、power9、power10です。
  2076  //	GORISCV64
  2077  //		GOARCH=riscv64の場合、コンパイルするRISC-Vユーザーモードアプリケーションプロファイル。
  2078  //		有効な値はrva20u64(デフォルト)、rva22u64です。
  2079  //		https://github.com/riscv/riscv-profiles/blob/main/profiles.adoc を参照してください。
  2080  //	GOWASM
  2081  //		GOARCH=wasmの場合、使用する実験的なWebAssembly機能のカンマ区切りのリスト。
  2082  //		有効な値はsatconv、signextです。
  2083  //
  2084  // コードカバレッジに使用する環境変数:
  2085  //
  2086  //	GOCOVERDIR
  2087  //		"go build -cover"バイナリを実行して生成されたコードカバレッジデータファイルを書き込むディレクトリ。
  2088  //		GOEXPERIMENT=coverageredesignが有効になっている必要があります。
  2089  //
  2090  // 特別な目的の環境変数:
  2091  //
  2092  //	GCCGOTOOLDIR
  2093  //		設定されている場合、cgoなどのgccgoツールを見つける場所。
  2094  //		デフォルトはgccgoの設定方法に基づいています。
  2095  //	GOEXPERIMENT
  2096  //		有効化または無効化するツールチェーンの実験のカンマ区切りのリスト。
  2097  //		利用可能な実験のリストは時間とともに任意に変更される可能性があります。
  2098  //		現在有効な値については、src/internal/goexperiment/flags.goを参照してください。
  2099  //		警告: この変数はGoツールチェーン自体の開発とテストのために提供されています。
  2100  //		それ以外の目的での使用はサポートされていません。
  2101  //	GO_EXTLINK_ENABLED
  2102  //		cgoを使用するコードと-linkmode=autoを使用するときに、
  2103  //		リンカーが外部リンクモードを使用するかどうか。
  2104  //		外部リンクモードを無効にするには0、有効にするには1を設定します。
  2105  //	GIT_ALLOW_PROTOCOL
  2106  //		Gitによって定義されます。git fetch/cloneで使用できるスキームのコロン区切りのリスト。
  2107  //		設定されている場合、明示的に言及されていない任意のスキームは、'go get'によって安全でないと見なされます。
  2108  //		変数はGitによって定義されているため、デフォルト値は'go env -w'を使用して設定できません。
  2109  //
  2110  // 'go env'から利用可能な追加情報(環境からは読み取られません):
  2111  //
  2112  //	GOEXE
  2113  //		実行可能ファイルの名前のサフィックス(Windowsでは".exe"、他のシステムでは"")。
  2114  //	GOGCCFLAGS
  2115  //		CCコマンドに渡される引数のスペース区切りのリスト。
  2116  //	GOHOSTARCH
  2117  //		Goツールチェーンバイナリのアーキテクチャ(GOARCH)。
  2118  //	GOHOSTOS
  2119  //		Goツールチェーンバイナリのオペレーティングシステム(GOOS)。
  2120  //	GOMOD
  2121  //		メインモジュールのgo.modへの絶対パス。
  2122  //		モジュール対応モードが有効で、go.modがない場合、GOMODはos.DevNullになります
  2123  //		(Unix系システムでは"/dev/null"、Windowsでは"NUL")。
  2124  //		モジュール対応モードが無効の場合、GOMODは空文字列になります。
  2125  //	GOTOOLDIR
  2126  //		goツール(compile、cover、docなど)がインストールされているディレクトリ。
  2127  //	GOVERSION
  2128  //		インストールされているGoツリーのバージョン。runtime.Versionによって報告されます。
  2129  //
  2130  // # File types
  2131  //
  2132  // goコマンドは、各ディレクトリ内の制限された一連のファイルの内容を調べます。
  2133  // それは、ファイル名の拡張子に基づいて調査するファイルを特定します。これらの拡張子は次のとおりです。
  2134  //
  2135  //	.go
  2136  //		Goソースファイル。
  2137  //	.c, .h
  2138  //		Cソースファイル。
  2139  //		パッケージがcgoまたはSWIGを使用している場合、これらは
  2140  //		OSネイティブのコンパイラ(通常はgcc)でコンパイルされます。それ以外の場合は
  2141  //		エラーを引き起こします。
  2142  //	.cc, .cpp, .cxx, .hh, .hpp, .hxx
  2143  //		C++ソースファイル。cgoまたはSWIGと一緒に使用する場合にのみ有用で、常に
  2144  //		OSネイティブのコンパイラでコンパイルされます。
  2145  //	.m
  2146  //		Objective-Cソースファイル。cgoと一緒に使用する場合にのみ有用で、常に
  2147  //		OSネイティブのコンパイラでコンパイルされます。
  2148  //	.s, .S, .sx
  2149  //		アセンブラソースファイル。
  2150  //		パッケージがcgoまたはSWIGを使用している場合、これらは
  2151  //		OSネイティブのアセンブラ(通常はgcc(sic))でアセンブルされます。それ以外の場合は
  2152  //		Goアセンブラでアセンブルされます。
  2153  //	.swig, .swigcxx
  2154  //		SWIG定義ファイル。
  2155  //	.syso
  2156  //		システムオブジェクトファイル。
  2157  //
  2158  // .sysoを除くこれらのタイプの各ファイルにはビルド制約が含まれている場合がありますが、
  2159  // goコマンドは、空行または//-スタイルの行コメントでないファイルの最初の項目で
  2160  // ビルド制約のスキャンを停止します。詳細はgo/buildパッケージのドキュメンテーションを参照してください。
  2161  //
  2162  // # The go.mod file
  2163  //
  2164  // モジュールのバージョンは、そのルートにgo.modファイルを持つソースファイルのツリーによって定義されます。
  2165  // goコマンドが実行されると、現在のディレクトリとその親ディレクトリを順に探し、
  2166  // メイン(現在の)モジュールのルートをマークするgo.modを見つけます。
  2167  //
  2168  // go.modファイルの形式は、https://golang.org/ref/mod#go-mod-file で詳しく説明されています。
  2169  //
  2170  // 新しいgo.modファイルを作成するには、'go mod init'を使用します。詳細は
  2171  // 'go help mod init'またはhttps://golang.org/ref/mod#go-mod-initを参照してください。
  2172  //
  2173  // 不足しているモジュール要件を追加したり、不要な要件を削除したりするには、
  2174  // 'go mod tidy'を使用します。詳細は、'go help mod tidy'または
  2175  // https://golang.org/ref/mod#go-mod-tidyを参照してください。
  2176  //
  2177  // 特定のモジュール要件を追加、アップグレード、ダウングレード、または削除するには、
  2178  // 'go get'を使用します。詳細は、'go help module-get'または
  2179  // https://golang.org/ref/mod#go-getを参照してください。
  2180  //
  2181  // 他の変更を加えたり、go.modをJSONとして解析して他のツールで使用したりするには、
  2182  // 'go mod edit'を使用します。'go help mod edit'または
  2183  // https://golang.org/ref/mod#go-mod-editを参照してください。
  2184  //
  2185  // # GOPATH environment variable
  2186  //
  2187  // Goパスはインポート文を解決するために使用されます。
  2188  // これはgo/buildパッケージによって実装され、そのパッケージで文書化されています。
  2189  //
  2190  // GOPATH環境変数は、Goのコードを探す場所をリストします。
  2191  // Unixでは、値はコロンで区切られた文字列です。
  2192  // Windowsでは、値はセミコロンで区切られた文字列です。
  2193  // Plan 9では、値はリストです。
  2194  //
  2195  // 環境変数が設定されていない場合、GOPATHはデフォルトで
  2196  // ユーザーのホームディレクトリ内の"go"という名前のサブディレクトリになります
  2197  // (Unixでは$HOME/go、Windowsでは%USERPROFILE%\go)。
  2198  // ただし、そのディレクトリがGoのディストリビューションを保持している場合は除きます。
  2199  // 現在のGOPATHを見るには、"go env GOPATH"を実行します。
  2200  //
  2201  // カスタムGOPATHを設定するには、https://golang.org/wiki/SettingGOPATH を参照してください。
  2202  //
  2203  // GOPATHにリストされている各ディレクトリは、所定の構造を持つ必要があります:
  2204  //
  2205  // srcディレクトリはソースコードを保持します。src以下のパスは
  2206  // インポートパスまたは実行可能な名前を決定します。
  2207  //
  2208  // pkgディレクトリは、インストールされたパッケージオブジェクトを保持します。
  2209  // Goツリーと同様に、各ターゲットオペレーティングシステムと
  2210  // アーキテクチャのペアは、pkgのサブディレクトリを持ちます
  2211  // (pkg/GOOS_GOARCH)。
  2212  //
  2213  // DIRがGOPATHにリストされているディレクトリである場合、
  2214  // DIR/src/foo/barにソースを持つパッケージは"foo/bar"としてインポートでき、
  2215  // コンパイルされた形式は"DIR/pkg/GOOS_GOARCH/foo/bar.a"にインストールされます。
  2216  //
  2217  // binディレクトリは、コンパイルされたコマンドを保持します。
  2218  // 各コマンドはそのソースディレクトリに基づいて命名されますが、
  2219  // パスの最終要素だけで、パス全体ではありません。つまり、
  2220  // DIR/src/foo/quuxにソースを持つコマンドは、
  2221  // DIR/bin/quuxにインストールされ、DIR/bin/foo/quuxにはインストールされません。
  2222  // "foo/"プレフィックスは削除されるため、
  2223  // インストールされたコマンドにアクセスするためにDIR/binをPATHに追加できます。
  2224  // GOBIN環境変数が設定されている場合、コマンドはDIR/binの代わりに
  2225  // その変数が指すディレクトリにインストールされます。GOBINは絶対パスでなければなりません。
  2226  //
  2227  // 以下にディレクトリのレイアウトの例を示します:
  2228  //
  2229  //	GOPATH=/home/user/go
  2230  //
  2231  //	/home/user/go/
  2232  //	    src/
  2233  //	        foo/
  2234  //	            bar/               (パッケージbarのgoコード)
  2235  //	                x.go
  2236  //	            quux/              (パッケージmainのgoコード)
  2237  //	                y.go
  2238  //	    bin/
  2239  //	        quux                   (インストールされたコマンド)
  2240  //	    pkg/
  2241  //	        linux_amd64/
  2242  //	            foo/
  2243  //	                bar.a          (インストールされたパッケージオブジェクト)
  2244  //
  2245  // Goはソースコードを見つけるために、GOPATHにリストされた各ディレクトリを検索しますが、
  2246  // 新しいパッケージは常にリストの最初のディレクトリにダウンロードされます。
  2247  //
  2248  // 例については、https://golang.org/doc/code.html を参照してください。
  2249  //
  2250  // # GOPATH and Modules
  2251  //
  2252  // モジュールを使用すると、GOPATHはインポートの解決にはもはや使用されません。
  2253  // しかし、ダウンロードしたソースコード(GOPATH/pkg/mod内)と
  2254  // コンパイルされたコマンド(GOPATH/bin内)を保存するためにまだ使用されます。
  2255  //
  2256  // # Internal Directories
  2257  //
  2258  // "internal"という名前のディレクトリ内またはその下のコードは、
  2259  // "internal"の親でルート化されたディレクトリツリー内のコードのみがインポート可能です。
  2260  // 上記のディレクトリレイアウトの拡張版を以下に示します:
  2261  //
  2262  //	/home/user/go/
  2263  //	    src/
  2264  //	        crash/
  2265  //	            bang/              (パッケージbangのgoコード)
  2266  //	                b.go
  2267  //	        foo/                   (パッケージfooのgoコード)
  2268  //	            f.go
  2269  //	            bar/               (パッケージbarのgoコード)
  2270  //	                x.go
  2271  //	            internal/
  2272  //	                baz/           (パッケージbazのgoコード)
  2273  //	                    z.go
  2274  //	            quux/              (パッケージmainのgoコード)
  2275  //	                y.go
  2276  //
  2277  // z.goのコードは"foo/internal/baz"としてインポートされますが、
  2278  // そのインポート文はfooでルート化されたサブツリー内のソースファイルにのみ現れます。
  2279  // ソースファイルfoo/f.go、foo/bar/x.go、およびfoo/quux/y.goはすべて
  2280  // "foo/internal/baz"をインポートできますが、ソースファイルcrash/bang/b.goはできません。
  2281  //
  2282  // 詳細は https://golang.org/s/go14internal を参照してください。
  2283  //
  2284  // # Vendor Directories
  2285  //
  2286  // Go 1.6には、外部依存関係のローカルコピーを使用して、
  2287  // それらの依存関係のインポートを満たすためのサポートが含まれています。
  2288  // これは一般的にベンダリングと呼ばれます。
  2289  //
  2290  // "vendor"という名前のディレクトリ以下のコードは、
  2291  // "vendor"の親でルート化されたディレクトリツリー内のコードのみがインポート可能であり、
  2292  // ベンダー要素までのプレフィックスを省略したインポートパスのみを使用します。
  2293  //
  2294  // 以下に前のセクションの例を示しますが、
  2295  // "internal"ディレクトリが"vendor"に名前変更され、
  2296  // 新たにfoo/vendor/crash/bangディレクトリが追加されています:
  2297  //
  2298  //	/home/user/go/
  2299  //	    src/
  2300  //	        crash/
  2301  //	            bang/              (パッケージbangのgoコード)
  2302  //	                b.go
  2303  //	        foo/                   (パッケージfooのgoコード)
  2304  //	            f.go
  2305  //	            bar/               (パッケージbarのgoコード)
  2306  //	                x.go
  2307  //	            vendor/
  2308  //	                crash/
  2309  //	                    bang/      (パッケージbangのgoコード)
  2310  //	                        b.go
  2311  //	                baz/           (パッケージbazのgoコード)
  2312  //	                    z.go
  2313  //	            quux/              (パッケージmainのgoコード)
  2314  //	                y.go
  2315  //
  2316  // 内部と同じ可視性ルールが適用されますが、z.goのコードは
  2317  // "foo/vendor/baz"ではなく"baz"としてインポートされます。
  2318  //
  2319  // ソースツリー内でより深いベンダーディレクトリのコードは、
  2320  // 上位ディレクトリのコードをシャドウします。fooでルート化されたサブツリー内では、
  2321  // "crash/bang"のインポートはトップレベルの"crash/bang"ではなく
  2322  // "foo/vendor/crash/bang"に解決されます。
  2323  //
  2324  // ベンダーディレクトリ内のコードはインポートパスのチェックの対象ではありません
  2325  // ('go help importpath'を参照)。
  2326  //
  2327  // 'go get'がgitリポジトリをチェックアウトまたは更新するとき、
  2328  // それは今やサブモジュールも更新します。
  2329  //
  2330  // ベンダーディレクトリは、'go get'によって初めてチェックアウトされる
  2331  // 新しいリポジトリの配置に影響しません:それらは常にメインのGOPATHに配置され、
  2332  // ベンダーサブツリーには配置されません。
  2333  //
  2334  // 詳細は https://golang.org/s/go15vendor を参照してください。
  2335  //
  2336  // # Module proxy protocol
  2337  //
  2338  // Goモジュールプロキシは、指定された形式のURLに対するGETリクエストに応答できる任意のWebサーバーです。
  2339  // リクエストにはクエリパラメータがないため、固定のファイルシステムから提供されるサイト(file:/// URLを含む)でも
  2340  // モジュールプロキシになることができます。
  2341  //
  2342  // GOPROXYプロトコルの詳細については、
  2343  // https://golang.org/ref/mod#goproxy-protocol を参照してください。
  2344  //
  2345  // # Import path syntax
  2346  //
  2347  // インポートパス('go help packages'を参照)は、ローカルファイルシステムに保存されているパッケージを示します。
  2348  // 一般的に、インポートパスは標準パッケージ(例:"unicode/utf8")またはワークスペースの一つに見つかるパッケージを示します
  2349  // (詳細は 'go help gopath'を参照)。
  2350  //
  2351  // # Relative import paths
  2352  //
  2353  // ./または../で始まるインポートパスを相対パスと呼びます。
  2354  // ツールチェーンは、2つの方法で相対パスをショートカットとしてサポートしています。
  2355  //
  2356  // まず、相対パスはコマンドライン上での省略形として使用できます。
  2357  // "unicode"としてインポートされるコードを含むディレクトリで作業していて、
  2358  // "unicode/utf8"のテストを実行したい場合、完全なパスを指定する代わりに
  2359  // "go test ./utf8"と入力できます。
  2360  // 同様に、逆の状況では、"unicode/utf8"ディレクトリから"unicode"をテストするには
  2361  // "go test .."と入力します。すべてのサブディレクトリをテストするための
  2362  // "go test ./..."のような相対パターンも許可されています。
  2363  // パターン構文の詳細については、'go help packages'を参照してください。
  2364  //
  2365  // 二つ目、ワークスペース内でないGoプログラムをコンパイルしている場合、
  2366  // そのプログラムのインポート文中で相対パスを使用して、ワークスペース外の近くのコードを参照できます。
  2367  // これにより、通常のワークスペース外で小さなマルチパッケージプログラムを簡単に試すことができますが、
  2368  // そのようなプログラムは "go install"でインストールできません(インストールするためのワークスペースがありません)。
  2369  // そのため、それらはビルドするたびに一から再ビルドされます。
  2370  // 曖昧性を避けるため、Goプログラムはワークスペース内で相対インポートパスを使用することはできません。
  2371  //
  2372  // # Remote import paths
  2373  //
  2374  // 特定のインポートパスは、
  2375  // リビジョン管理システムを使用してパッケージのソースコードを取得する方法も
  2376  // 説明します。
  2377  //
  2378  // いくつかの一般的なコードホスティングサイトは特別な構文を持っています:
  2379  //
  2380  //	Bitbucket(Git、Mercurial)
  2381  //
  2382  //		import "bitbucket.org/user/project"
  2383  //		import "bitbucket.org/user/project/sub/directory"
  2384  //
  2385  //	GitHub(Git)
  2386  //
  2387  //		import "github.com/user/project"
  2388  //		import "github.com/user/project/sub/directory"
  2389  //
  2390  //	Launchpad(Bazaar)
  2391  //
  2392  //		import "launchpad.net/project"
  2393  //		import "launchpad.net/project/series"
  2394  //		import "launchpad.net/project/series/sub/directory"
  2395  //
  2396  //		import "launchpad.net/~user/project/branch"
  2397  //		import "launchpad.net/~user/project/branch/sub/directory"
  2398  //
  2399  //	IBM DevOps Services(Git)
  2400  //
  2401  //		import "hub.jazz.net/git/user/project"
  2402  //		import "hub.jazz.net/git/user/project/sub/directory"
  2403  //
  2404  // 他のサーバーでホストされているコードの場合、インポートパスはバージョン管理タイプで
  2405  // 修飾されるか、またはgoツールが動的にhttps/http経由でインポートパスをフェッチし、
  2406  // HTMLの<meta>タグからコードがどこに存在するかを発見できます。
  2407  //
  2408  // コードの場所を宣言するために、形式
  2409  //
  2410  //	repository.vcs/path
  2411  //
  2412  // のインポートパスは、.vcsサフィックスがあるかないかに関わらず指定されたリポジトリを指定し、
  2413  // 名前付きのバージョン管理システムを使用し、そのリポジトリ内のパスを指定します。
  2414  // サポートされているバージョン管理システムは次のとおりです:
  2415  //
  2416  //	Bazaar      .bzr
  2417  //	Fossil      .fossil
  2418  //	Git         .git
  2419  //	Mercurial   .hg
  2420  //	Subversion  .svn
  2421  //
  2422  // 例えば、
  2423  //
  2424  //	import "example.org/user/foo.hg"
  2425  //
  2426  // はexample.org/user/fooまたはfoo.hgのMercurialリポジトリのルートディレクトリを示し、
  2427  //
  2428  //	import "example.org/repo.git/foo/bar"
  2429  //
  2430  // はexample.org/repoまたはrepo.gitのGitリポジトリのfoo/barディレクトリを示します。
  2431  //
  2432  // バージョン管理システムが複数のプロトコルをサポートしている場合、
  2433  // ダウンロード時にそれぞれが順番に試されます。例えば、Gitのダウンロードでは
  2434  // https://から試し、次にgit+ssh://を試します。
  2435  //
  2436  // デフォルトでは、ダウンロードは既知の安全なプロトコル(例:https、ssh)に制限されています。
  2437  // この設定をGitのダウンロードで上書きするには、
  2438  // GIT_ALLOW_PROTOCOL環境変数を設定できます(詳細は 'go help environment'を参照)。
  2439  //
  2440  // インポートパスが既知のコードホスティングサイトでなく、バージョン管理の修飾子もない場合、
  2441  // goツールはインポートをhttps/http経由でフェッチし、ドキュメントのHTML
  2442  // <head>内の<meta>タグを探します。
  2443  //
  2444  // メタタグは次の形式を持ちます:
  2445  //
  2446  //	<meta name="go-import" content="import-prefix vcs repo-root">
  2447  //
  2448  // import-prefixはリポジトリルートに対応するインポートパスです。
  2449  // "go get"でフェッチされるパッケージのプレフィックスまたは完全一致でなければなりません。
  2450  // 完全一致でない場合、プレフィックスで別のhttpリクエストが行われ、<meta>タグが一致することを確認します。
  2451  //
  2452  // メタタグはファイル内で可能な限り早く現れるべきです。
  2453  // 特に、生のJavaScriptやCSSの前に現れるべきです、
  2454  // これはgoコマンドの制限付きパーサーを混乱させることを避けるためです。
  2455  //
  2456  // vcsは"bzr"、"fossil"、"git"、"hg"、"svn"のいずれかです。
  2457  //
  2458  // repo-rootはスキームを含み、.vcs修飾子を含まないバージョン管理システムのルートです。
  2459  //
  2460  // 例えば、
  2461  //
  2462  //	import "example.org/pkg/foo"
  2463  //
  2464  // は次のリクエストを引き起こします:
  2465  //
  2466  //	https://example.org/pkg/foo?go-get=1 (推奨)
  2467  //	http://example.org/pkg/foo?go-get=1  (フォールバック、正しく設定されたGOINSECUREの使用時のみ)
  2468  //
  2469  // そのページがメタタグ
  2470  //
  2471  //	<meta name="go-import" content="example.org git https://code.org/r/p/exproj">
  2472  //
  2473  // を含む場合、goツールはhttps://example.org/?go-get=1が同じメタタグを含むことを確認し、
  2474  // その後git clone https://code.org/r/p/exprojをGOPATH/src/example.orgにクローンします。
  2475  //
  2476  // GOPATHを使用している場合、ダウンロードしたパッケージはGOPATH環境変数にリストされた最初のディレクトリに書き込まれます。
  2477  // ('go help gopath-get'と'go help gopath'を参照してください。)
  2478  //
  2479  // モジュールを使用している場合、ダウンロードしたパッケージはモジュールキャッシュに保存されます。
  2480  // https://golang.org/ref/mod#module-cache を参照してください。
  2481  //
  2482  // モジュールを使用している場合、go-importメタタグの追加のバリアントが認識され、
  2483  // バージョン管理システムをリストしているものよりも優先されます。
  2484  // そのバリアントは、コンテンツ値のvcsとして"mod"を使用します。例えば:
  2485  //
  2486  //	<meta name="go-import" content="example.org mod https://code.org/moduleproxy">
  2487  //
  2488  // このタグは、パスがexample.orgで始まるモジュールを、URL https://code.org/moduleproxyで利用可能なモジュールプロキシからフェッチすることを意味します。
  2489  // プロキシプロトコルの詳細については、https://golang.org/ref/mod#goproxy-protocol を参照してください。
  2490  //
  2491  // # Import path checking
  2492  //
  2493  // 上記で説明したカスタムインポートパス機能が
  2494  // 既知のコードホスティングサイトにリダイレクトすると、
  2495  // 結果として得られる各パッケージには、カスタムドメインまたは既知のホスティングサイトを使用した
  2496  // 2つの可能なインポートパスがあります。
  2497  //
  2498  // パッケージステートメントは、次の2つの形式のいずれかのコメントによって
  2499  // 直後(次の改行前)に続く場合、"インポートコメント"を持つと言われます:
  2500  //
  2501  //	package math // import "path"
  2502  //	package math /* import "path" */
  2503  //
  2504  // goコマンドは、インポートコメントを持つパッケージをインストールを拒否します
  2505  // それがそのインポートパスによって参照されている場合を除きます。このように、インポートコメントを使用すると、
  2506  // パッケージ作者はカスタムインポートパスが使用され、基礎となるコードホスティングサイトへの直接パスが使用されないことを確認できます。
  2507  //
  2508  // ベンダーツリー内で見つかったコードに対してはインポートパスのチェックが無効化されます。
  2509  // これにより、インポートコメントを更新することなく、コードをベンダーツリーの代替の場所にコピーすることが可能になります。
  2510  //
  2511  // モジュールを使用している場合も、インポートパスのチェックは無効化されます。
  2512  // インポートパスコメントは、go.modファイルのモジュールステートメントによって廃止されます。
  2513  //
  2514  // 詳細は https://golang.org/s/go14customimport を参照してください。
  2515  //
  2516  // # Modules, module versions, and more
  2517  //
  2518  // モジュールはGoが依存関係を管理する方法です。
  2519  //
  2520  // モジュールは、パッケージの集合であり、一緒にリリース、バージョン管理、
  2521  // 配布されます。モジュールはバージョン管理リポジトリから直接ダウンロードすることも、
  2522  // モジュールプロキシサーバーからダウンロードすることもできます。
  2523  //
  2524  // モジュールに関する一連のチュートリアルについては、
  2525  // https://golang.org/doc/tutorial/create-module を参照してください。
  2526  //
  2527  // モジュールに関する詳細なリファレンスについては、https://golang.org/ref/mod を参照してください。
  2528  //
  2529  // デフォルトでは、goコマンドはhttps://proxy.golang.orgからモジュールをダウンロードすることができます。
  2530  // また、https://sum.golang.orgのチェックサムデータベースを使用してモジュールを認証することもできます。
  2531  // これらのサービスは、GoogleのGoチームによって運営されています。
  2532  // これらのサービスのプライバシーポリシーは、それぞれ
  2533  // https://proxy.golang.org/privacy と https://sum.golang.org/privacy で利用可能です。
  2534  //
  2535  // goコマンドのダウンロード動作は、GOPROXY、GOSUMDB、GOPRIVATEなどの環境変数を使用して設定することができます。
  2536  // 詳細は 'go help environment' と https://golang.org/ref/mod#private-module-privacy を参照してください。
  2537  //
  2538  // # Module authentication using go.sum
  2539  //
  2540  // goコマンドがモジュールのzipファイルやgo.modファイルをモジュールキャッシュにダウンロードするとき、
  2541  // それは暗号学的ハッシュを計算し、それを既知の値と比較して、ファイルが初めてダウンロードされてから変更されていないことを確認します。
  2542  // 既知のハッシュは、モジュールのルートディレクトリにあるgo.sumという名前のファイルに保存されます。
  2543  // ハッシュは、GOSUMDB、GOPRIVATE、およびGONOSUMDBの値に応じて、チェックサムデータベースからもダウンロードされることがあります。
  2544  //
  2545  // 詳細は、https://golang.org/ref/mod#authenticating を参照してください。
  2546  //
  2547  // # Package lists and patterns
  2548  //
  2549  // 多くのコマンドは一連のパッケージに適用されます:
  2550  //
  2551  //	go <action> [packages]
  2552  //
  2553  // 通常、[packages]はインポートパスのリストです。
  2554  //
  2555  // ルートパスであるか、.または..要素で始まるインポートパスは、
  2556  // ファイルシステムパスとして解釈され、そのディレクトリ内のパッケージを示します。
  2557  //
  2558  // それ以外の場合、インポートパスPは、GOPATH環境変数にリストされている
  2559  // いくつかのDIRで、DIR/src/Pディレクトリに見つかるパッケージを示します
  2560  // (詳細は 'go help gopath' を参照してください)。
  2561  //
  2562  // インポートパスが指定されていない場合、アクションは現在のディレクトリ内のパッケージに適用されます。
  2563  //
  2564  // goツールでビルドするパッケージに対して使用すべきでない、4つの予約済みのパス名があります:
  2565  //
  2566  // - "main"は、スタンドアロンの実行可能ファイルのトップレベルのパッケージを示します。
  2567  //
  2568  // - "all"は、すべてのGOPATHツリーで見つかったすべてのパッケージに展開されます。
  2569  // 例えば、'go list all'はローカルシステム上のすべてのパッケージをリストします。
  2570  // モジュールを使用している場合、"all"はメインモジュール内のすべてのパッケージと
  2571  // それらの依存関係に展開され、それらのいずれかのテストに必要な依存関係も含みます。
  2572  //
  2573  // - "std"はallと似ていますが、標準のGoライブラリ内のパッケージだけに展開されます。
  2574  //
  2575  // - "cmd"はGoリポジトリのコマンドとそれらの内部ライブラリに展開されます。
  2576  //
  2577  // "cmd/"で始まるインポートパスは、Goリポジトリ内のソースコードのみに一致します。
  2578  //
  2579  // インポートパスに1つ以上の"..."ワイルドカードが含まれている場合、それはパターンとなります。
  2580  // これらのワイルドカードは、空文字列やスラッシュを含む文字列を含む任意の文字列に一致することができます。
  2581  // このようなパターンは、GOPATHツリー内で見つかった名前がパターンに一致するすべてのパッケージディレクトリに展開されます。
  2582  //
  2583  // よく使うパターンを便利にするために、2つの特別なケースがあります。
  2584  // まず、パターンの最後の/...は空文字列に一致することができるため、
  2585  // net/...はnetとそのサブディレクトリ内のパッケージ、例えばnet/httpの両方に一致します。
  2586  // 次に、ワイルドカードを含む任意のスラッシュで区切られたパターン要素は、
  2587  // ベンダードパッケージのパスの"vendor"要素のマッチには参加しないため、
  2588  // ./...は./vendorや./mycode/vendorのサブディレクトリ内のパッケージには一致しませんが、
  2589  // ./vendor/...と./mycode/vendor/...は一致します。
  2590  // ただし、コードを含むvendorという名前のディレクトリ自体はベンダードパッケージではないことに注意してください:
  2591  // cmd/vendorはvendorという名前のコマンドになり、パターンcmd/...はそれに一致します。
  2592  // ベンダリングについての詳細は、golang.org/s/go15vendorを参照してください。
  2593  //
  2594  // インポートパスは、リモートリポジトリからダウンロードされるパッケージを指定することもできます。
  2595  // 詳細は 'go help importpath' を実行してください。
  2596  //
  2597  // プログラム内のすべてのパッケージは、一意のインポートパスを持つ必要があります。
  2598  // 慣習的に、各パスはあなたが所有する一意のプレフィックスで始まるように配置されます。
  2599  // 例えば、Google内部で使用されるパスはすべて'google'で始まり、
  2600  // リモートリポジトリを示すパスはコードへのパス、例えば'github.com/user/repo'で始まります。
  2601  //
  2602  // プログラム内のパッケージは一意のパッケージ名を持つ必要はありませんが、
  2603  // 特別な意味を持つ2つの予約済みのパッケージ名があります。
  2604  // 名前mainはコマンドを示し、ライブラリではありません。
  2605  // コマンドはバイナリにビルドされ、インポートすることはできません。
  2606  // 名前documentationは、ディレクトリ内の非Goプログラムのドキュメンテーションを示します。
  2607  // パッケージdocumentation内のファイルはgoコマンドによって無視されます。
  2608  //
  2609  // 特別なケースとして、パッケージリストが単一のディレクトリからの.goファイルのリストである場合、
  2610  // コマンドはそれらのファイルだけから構成される単一の合成パッケージに適用され、
  2611  // それらのファイル内のビルド制約は無視され、ディレクトリ内の他のファイルも無視されます。
  2612  //
  2613  // "."または"_"で始まるディレクトリ名とファイル名は、goツールによって無視されます。
  2614  // また、"testdata"という名前のディレクトリも無視されます。
  2615  //
  2616  // # Configuration for downloading non-public code
  2617  //
  2618  // goコマンドはデフォルトで、公開Goモジュールミラーのproxy.golang.orgからモジュールをダウンロードします。
  2619  // また、ソースに関係なくダウンロードしたモジュールを公開Goチェックサムデータベースのsum.golang.orgで検証するようにデフォルト設定されています。
  2620  // これらのデフォルトは、公開されているソースコードに対してはうまく機能します。
  2621  //
  2622  // GOPRIVATE環境変数は、goコマンドがプライベート(公開されていない)とみなすモジュールを制御し、
  2623  // そのためプロキシやチェックサムデータベースを使用しないようにします。
  2624  // この変数は、モジュールパスのプレフィックスのglobパターン(Goのpath.Matchの構文)のカンマ区切りのリストです。
  2625  // 例えば、
  2626  //
  2627  //	GOPRIVATE=*.corp.example.com,rsc.io/private
  2628  //
  2629  // は、goコマンドがgit.corp.example.com/xyzzy、rsc.io/private、rsc.io/private/quuxなど、
  2630  // いずれかのパターンに一致するパスプレフィックスを持つ任意のモジュールをプライベートとして扱うようにします。
  2631  //
  2632  // モジュールのダウンロードと検証を細かく制御するために、GONOPROXYとGONOSUMDB環境変数は同じ種類のglobリストを受け入れ、
  2633  // プロキシとチェックサムデータベースを使用するかどうかの具体的な決定についてGOPRIVATEを上書きします。
  2634  //
  2635  // 例えば、会社がプライベートモジュールを提供するモジュールプロキシを運用している場合、
  2636  // ユーザーはgoを次のように設定します:
  2637  //
  2638  //	GOPRIVATE=*.corp.example.com
  2639  //	GOPROXY=proxy.example.com
  2640  //	GONOPROXY=none
  2641  //
  2642  // GOPRIVATE変数はまた、GOVCS変数の"public"と"private"のパターンを定義するために使用されます。
  2643  // その使用法については、'go help vcs'を参照してください。その使用法では、GOPRIVATEはGOPATHモードでも適用されます。
  2644  // その場合、それはモジュールパスではなくインポートパスに一致します。
  2645  //
  2646  // 'go env -w'コマンド('go help env'を参照)は、これらの変数を将来のgoコマンドの呼び出しに設定するために使用できます。
  2647  //
  2648  // 詳細は、https://golang.org/ref/mod#private-modules を参照してください。
  2649  //
  2650  // # Testing flags
  2651  //
  2652  // 'go test'コマンドは、'go test'自体に適用されるフラグと、
  2653  // 結果として得られるテストバイナリに適用されるフラグの両方を取ります。
  2654  //
  2655  // フラグのいくつかはプロファイリングを制御し、"go tool pprof"に適した実行プロファイルを書き出します。
  2656  // "go tool pprof -h"を実行して、詳細情報を得てください。
  2657  // pprofの--alloc_space、--alloc_objects、および--show_bytesオプションは、情報がどのように表示されるかを制御します。
  2658  //
  2659  // 'go test'コマンドは以下のフラグを認識し、
  2660  // 任意のテストの実行を制御します:
  2661  //
  2662  //	-bench regexp
  2663  //	    正規表現に一致するベンチマークのみを実行します。
  2664  //	    デフォルトでは、ベンチマークは実行されません。
  2665  //	    すべてのベンチマークを実行するには、'-bench .'または'-bench=.'を使用します。
  2666  //	    正規表現は、括弧で囲まれていないスラッシュ(/)文字で分割され、
  2667  //	    一連の正規表現になり、ベンチマークの識別子の各部分は、
  2668  //	    シーケンス内の対応する要素と一致する必要があります(もしあれば)。
  2669  //	    マッチの可能な親は、サブベンチマークを識別するためにb.N=1で実行されます。
  2670  //	    例えば、-bench=X/Yが与えられた場合、Xに一致するトップレベルのベンチマークは
  2671  //	    b.N=1で実行され、Yに一致する任意のサブベンチマークを見つけるために、
  2672  //	    それらは完全に実行されます。
  2673  //
  2674  //	-benchtime t
  2675  //	    各ベンチマークのイテレーションをt(time.Durationとして指定)の時間だけ実行します
  2676  //	    (例えば、-benchtime 1h30s)。
  2677  //	    デフォルトは1秒(1s)です。
  2678  //	    特別な構文Nxは、ベンチマークをN回実行することを意味します
  2679  //	    (例えば、-benchtime 100x)。
  2680  //
  2681  //	-count n
  2682  //	    各テスト、ベンチマーク、およびfuzz seedをn回実行します(デフォルトは1)。
  2683  //	    -cpuが設定されている場合、GOMAXPROCSの値ごとにn回実行します。
  2684  //	    例は常に一度だけ実行されます。-countは-fuzzによってマッチした
  2685  //	    fuzzテストには適用されません。
  2686  //
  2687  //	-cover
  2688  //	    カバレッジ分析を有効にします。
  2689  //	    カバレッジはコンパイル前にソースコードに注釈を付けることで動作するため、
  2690  //	    カバレッジが有効な状態でのコンパイルエラーやテスト失敗は、
  2691  //	    元のソースと一致しない行番号を報告する可能性があります。
  2692  //
  2693  //	-covermode set,count,atomic
  2694  //	    テスト対象のパッケージのカバレッジ分析のモードを設定します。
  2695  //	    デフォルトは"set"ですが、-raceが有効な場合は"atomic"になります。
  2696  //	    値:
  2697  //		set: bool: このステートメントは実行されますか?
  2698  //		count: int: このステートメントは何回実行されますか?
  2699  //		atomic: int: countと同じですが、マルチスレッドのテストで正確です。
  2700  //			大幅にコストがかかります。
  2701  //	    -coverを設定します。
  2702  //
  2703  //	-coverpkg pattern1,pattern2,pattern3
  2704  //	    各テストで、パターンに一致するパッケージにカバレッジ分析を適用します。
  2705  //	    デフォルトでは、各テストはテスト対象のパッケージのみを分析します。
  2706  //	    パッケージパターンの説明については、'go help packages'を参照してください。
  2707  //	    -coverを設定します。
  2708  //
  2709  //	-cpu 1,2,4
  2710  //	    テスト、ベンチマーク、またはfuzzテストを実行するためのGOMAXPROCS値のリストを指定します。
  2711  //	    デフォルトは現在のGOMAXPROCSの値です。-cpuは-fuzzによってマッチしたfuzzテストには適用されません。
  2712  //
  2713  //	-failfast
  2714  //	    最初のテスト失敗後、新しいテストを開始しない。
  2715  //
  2716  //	-fullpath
  2717  //	    エラーメッセージで完全なファイル名を表示します。
  2718  //
  2719  //	-fuzz regexp
  2720  //	    正規表現にマッチするfuzzテストを実行します。指定された場合、
  2721  //	    コマンドライン引数はメインモジュール内の正確に1つのパッケージと一致し、
  2722  //	    regexpはそのパッケージ内の正確に1つのfuzzテストと一致する必要があります。
  2723  //	    ファジングは、テスト、ベンチマーク、他のfuzzテストのシードコーパス、
  2724  //	    および例が完了した後に行われます。詳細は、テストパッケージのドキュメンテーションの
  2725  //	    Fuzzingセクションを参照してください。
  2726  //
  2727  //	-fuzztime t
  2728  //	    ファジング中にfuzzターゲットのイテレーションをt(time.Durationとして指定)の時間だけ実行します
  2729  //	    (例えば、-fuzztime 1h30s)。
  2730  //		デフォルトは永遠に実行することです。
  2731  //	    特別な構文Nxは、fuzzターゲットをN回実行することを意味します
  2732  //	    (例えば、-fuzztime 1000x)。
  2733  //
  2734  //	-fuzzminimizetime t
  2735  //	    各最小化試行中にfuzzターゲットのイテレーションをt(time.Durationとして指定)の時間だけ実行します
  2736  //	    (例えば、-fuzzminimizetime 30s)。
  2737  //		デフォルトは60sです。
  2738  //	    特別な構文Nxは、fuzzターゲットをN回実行することを意味します
  2739  //	    (例えば、-fuzzminimizetime 100x)。
  2740  //
  2741  //	-json
  2742  //	    JSON形式で詳細な出力とテスト結果をログに記録します。これは、
  2743  //	    マシンが読み取れる形式で-vフラグと同じ情報を提供します。
  2744  //
  2745  //	-list regexp
  2746  //	    正規表現に一致するテスト、ベンチマーク、fuzzテスト、または例をリストします。
  2747  //	    テスト、ベンチマーク、fuzzテスト、または例は実行されません。
  2748  //	    これはトップレベルのテストのみをリストします。サブテストやサブベンチマークは
  2749  //	    表示されません。
  2750  //
  2751  //	-parallel n
  2752  //	    t.Parallelを呼び出すテスト関数の並列実行を許可し、
  2753  //	    シードコーパスを実行する際にt.Parallelを呼び出すfuzzターゲットを許可します。
  2754  //	    このフラグの値は、同時に実行するテストの最大数です。
  2755  //	    ファジング中、このフラグの値は、T.Parallelが呼び出されるかどうかに関係なく、
  2756  //	    同時にfuzz関数を呼び出すことができるサブプロセスの最大数です。
  2757  //	    デフォルトでは、-parallelはGOMAXPROCSの値に設定されています。
  2758  //	    -parallelをGOMAXPROCSよりも高い値に設定すると、特にファジング時に、
  2759  //	    CPUの競合によりパフォーマンスが低下する可能性があります。
  2760  //	    -parallelは単一のテストバイナリ内でのみ適用されることに注意してください。
  2761  //	    'go test'コマンドは、-pフラグの設定に従って、異なるパッケージのテストを
  2762  //	    並行して実行することもあります('go help build'を参照)。
  2763  //
  2764  //	-run regexp
  2765  //	    正規表現に一致するテスト、例、およびfuzzテストのみを実行します。
  2766  //	    テストの場合、正規表現は括弧で囲まれていないスラッシュ(/)文字で分割され、
  2767  //	    一連の正規表現になり、テストの識別子の各部分は、
  2768  //	    シーケンス内の対応する要素と一致する必要があります(もしあれば)。
  2769  //	    マッチの可能な親も実行されるため、-run=X/YはXに一致するすべてのテストを
  2770  //	    マッチさせ、実行し、結果を報告します。これには、Yに一致するサブテストがないものも含まれます。
  2771  //	    なぜなら、それらのサブテストを探すためには、それらを実行する必要があるからです。
  2772  //	    -skipも参照してください。
  2773  //
  2774  //	-short
  2775  //	    長時間実行されるテストに対して、その実行時間を短縮するよう指示します。
  2776  //	    デフォルトではオフですが、all.bashの間に設定されるため、
  2777  //	    Goツリーのインストールは、健全性チェックを実行できますが、
  2778  //	    徹底的なテストを実行する時間を費やすことはありません。
  2779  //
  2780  //	-shuffle off,on,N
  2781  //	    テストとベンチマークの実行順序をランダムにします。
  2782  //	    デフォルトではオフです。-shuffleがonに設定されている場合、
  2783  //	    システムクロックを使用してランダム化をシードします。-shuffleが
  2784  //	    整数Nに設定されている場合、Nはシード値として使用されます。
  2785  //	    どちらの場合も、再現性のためにシードが報告されます。
  2786  //
  2787  //	-skip regexp
  2788  //	    正規表現に一致しないテスト、例、fuzzテスト、およびベンチマークのみを実行します。
  2789  //	    -runと-benchのように、テストとベンチマークの場合、正規表現は括弧で囲まれていない
  2790  //	    スラッシュ(/)文字で分割され、一連の正規表現になり、テストの識別子の各部分は、
  2791  //	    シーケンス内の対応する要素と一致する必要があります(もしあれば)。
  2792  //
  2793  //	-timeout d
  2794  //	    テストバイナリがdより長く実行される場合、パニックします。
  2795  //	    dが0の場合、タイムアウトは無効になります。
  2796  //	    デフォルトは10分(10m)です。
  2797  //
  2798  //	-v
  2799  //	    冗長な出力:実行されるすべてのテストをログに記録します。また、テストが成功しても
  2800  //	    LogとLogfの呼び出しからすべてのテキストを印刷します。
  2801  //
  2802  //	-vet list
  2803  //	    "go test"中の"go vet"の呼び出しを設定して、カンマ区切りのvetチェックのリストを使用します。
  2804  //	    リストが空の場合、"go test"は、常に対処する価値があると考えられるチェックのキュレーションされたリストで"go vet"を実行します。
  2805  //	    リストが"off"の場合、"go test"は"go vet"を全く実行しません。
  2806  //
  2807  // 以下のフラグも 'go test' によって認識され、実行中のテストをプロファイルするために使用できます:
  2808  //
  2809  //	-benchmem
  2810  //	    ベンチマークのメモリ割り当て統計を出力します。
  2811  //	    Cで作成された割り当てやC.mallocを使用した割り当てはカウントされません。
  2812  //
  2813  //	-blockprofile block.out
  2814  //	    すべてのテストが完了したときに、指定されたファイルにゴルーチンのブロックプロファイルを書き込みます。
  2815  //	    -cと同様にテストバイナリを書き込みます。
  2816  //
  2817  //	-blockprofilerate n
  2818  //	    runtime.SetBlockProfileRateをnで呼び出すことで、ゴルーチンのブロックプロファイルの詳細を制御します。
  2819  //	    'go doc runtime.SetBlockProfileRate'を参照してください。
  2820  //	    プロファイラは、プログラムがブロックされている間、平均してnナノ秒ごとに1つのブロックイベントをサンプリングすることを目指します。
  2821  //	    デフォルトでは、-test.blockprofileがこのフラグなしで設定されている場合、すべてのブロックイベントが記録されます。
  2822  //	    これは-test.blockprofilerate=1と同等です。
  2823  //
  2824  //	-coverprofile cover.out
  2825  //	    すべてのテストが通過した後に、カバレッジプロファイルをファイルに書き込みます。
  2826  //	    -coverを設定します。
  2827  //
  2828  //	-cpuprofile cpu.out
  2829  //	    終了する前に、指定されたファイルにCPUプロファイルを書き込みます。
  2830  //	    -cと同様にテストバイナリを書き込みます。
  2831  //
  2832  //	-memprofile mem.out
  2833  //	    すべてのテストが通過した後に、割り当てプロファイルをファイルに書き込みます。
  2834  //	    -cと同様にテストバイナリを書き込みます。
  2835  //
  2836  //	-memprofilerate n
  2837  //	    runtime.MemProfileRateを設定することで、より精密(かつ高価)なメモリ割り当てプロファイルを有効にします。
  2838  //	    'go doc runtime.MemProfileRate'を参照してください。
  2839  //	    すべてのメモリ割り当てをプロファイルするには、-test.memprofilerate=1を使用します。
  2840  //
  2841  //	-mutexprofile mutex.out
  2842  //	    すべてのテストが完了したときに、指定されたファイルにミューテックス競合プロファイルを書き込みます。
  2843  //	    -cと同様にテストバイナリを書き込みます。
  2844  //
  2845  //	-mutexprofilefraction n
  2846  //	    競合するミューテックスを保持するゴルーチンのスタックトレースの1/nをサンプリングします。
  2847  //
  2848  //	-outputdir directory
  2849  //	    プロファイリングからの出力ファイルを指定されたディレクトリに配置します。
  2850  //	    デフォルトでは、"go test"が実行されているディレクトリです。
  2851  //
  2852  //	-trace trace.out
  2853  //	    終了する前に、指定されたファイルに実行トレースを書き込みます。
  2854  //
  2855  // これらのフラグはすべて、-test.vのように、オプションの'test.'プレフィックス付きでも認識されます。
  2856  // ただし、生成されたテストバイナリ('go test -c'の結果)を直接呼び出すときは、プレフィックスが必須です。
  2857  //
  2858  // 'go test'コマンドは、認識したフラグを適切に書き換えたり削除したりします。
  2859  // これは、オプションのパッケージリストの前後の両方で、テストバイナリを呼び出す前に行われます。
  2860  //
  2861  // 例えば、コマンド
  2862  //
  2863  //	go test -v -myflag testdata -cpuprofile=prof.out -x
  2864  //
  2865  // は、テストバイナリをコンパイルし、次のように実行します。
  2866  //
  2867  //	pkg.test -test.v -myflag testdata -test.cpuprofile=prof.out
  2868  //
  2869  // (-xフラグは、テスト自体ではなく、goコマンドの実行にのみ適用されるため、削除されます。)
  2870  //
  2871  // プロファイルを生成するテストフラグ(カバレッジ以外)は、プロファイルの分析時に使用するために、
  2872  // テストバイナリをpkg.testに残します。
  2873  //
  2874  // 'go test'がテストバイナリを実行するとき、それは対応するパッケージのソースコードディレクトリ内から行います。
  2875  // テストによっては、生成されたテストバイナリを直接呼び出すときにも同様にする必要があるかもしれません。
  2876  // そのディレクトリはモジュールキャッシュ内に位置している可能性があり、
  2877  // それは読み取り専用であり、チェックサムによって検証されるため、
  2878  // テストはユーザーが明示的に要求した場合(-fuzzフラグのように、
  2879  // 失敗をtestdata/fuzzに書き込む場合など)を除き、
  2880  // それまたはモジュール内の他の任意のディレクトリに書き込んではなりません。
  2881  //
  2882  // コマンドラインのパッケージリストが存在する場合、それはgo testコマンドが認識しない任意のフラグよりも前に現れなければなりません。
  2883  // 上記の例を続けると、パッケージリストは-myflagの前に現れなければならず、-vのどちら側に現れても構いません。
  2884  //
  2885  // 'go test'がパッケージリストモードで実行されるとき、'go test'は成功したパッケージテスト結果をキャッシュして、
  2886  // テストの不必要な繰り返し実行を避けます。テストキャッシュを無効にするには、
  2887  // キャッシュ可能なフラグ以外の任意のテストフラグまたは引数を使用します。
  2888  // テストキャッシュを明示的に無効にする慣用的な方法は、-count=1を使用することです。
  2889  //
  2890  // テストバイナリの引数が既知のフラグまたはパッケージ名として解釈されるのを防ぐには、
  2891  // -argsを使用します('go help test'を参照)。
  2892  // これはコマンドラインの残りをテストバイナリに解釈せず、変更せずに渡します。
  2893  //
  2894  // 例えば、コマンド
  2895  //
  2896  //	go test -v -args -x -v
  2897  //
  2898  // は、テストバイナリをコンパイルし、次のように実行します。
  2899  //
  2900  //	pkg.test -test.v -x -v
  2901  //
  2902  // 同様に、
  2903  //
  2904  //	go test -args math
  2905  //
  2906  // は、テストバイナリをコンパイルし、次のように実行します。
  2907  //
  2908  //	pkg.test math
  2909  //
  2910  // 最初の例では、-xと2つ目の-vはテストバイナリにそのまま渡され、goコマンド自体には影響を与えません。
  2911  // 2つ目の例では、引数mathはテストバイナリに渡され、パッケージリストとして解釈される代わりになります。
  2912  //
  2913  // # Testing functions
  2914  //
  2915  // 'go test'コマンドは、テスト対象のパッケージに対応する"*_test.go"ファイル内にテスト、ベンチマーク、および例示関数を見つけることを期待しています。
  2916  //
  2917  // テスト関数はTestXxxという名前のものであり(ここで、Xxxは小文字で始まらない)、以下のシグネチャを持つべきです。
  2918  //
  2919  //	func TestXxx(t *testing.T) { ... }
  2920  //
  2921  // ベンチマーク関数はBenchmarkXxxという名前のものであり、以下のシグネチャを持つべきです。
  2922  //
  2923  //	func BenchmarkXxx(b *testing.B) { ... }
  2924  //
  2925  // ファズテストはFuzzXxxという名前のものであり、以下のシグネチャを持つべきです。
  2926  //
  2927  //	func FuzzXxx(f *testing.F) { ... }
  2928  //
  2929  // 例示関数はテスト関数と似ていますが、成功や失敗を報告するために*testing.Tを使用する代わりに、
  2930  // 出力をos.Stdoutに印刷します。
  2931  // 関数内の最後のコメントが"Output:"で始まる場合、出力はコメントと完全に比較されます(下記の例を参照)。
  2932  // 最後のコメントが"Unordered output:"で始まる場合、出力はコメントと比較されますが、行の順序は無視されます。
  2933  // このようなコメントがない例示はコンパイルされますが実行されません。
  2934  // "Output:"の後にテキストがない例示は、コンパイルされ、実行され、出力を生成しないことが期待されます。
  2935  //
  2936  // GodocはExampleXxxの本文を表示して、関数、定数、または変数Xxxの使用方法を示します。
  2937  // レシーバタイプがTまたは*TのメソッドMの例はExampleT_Mと名付けられます。
  2938  // ある関数、定数、または変数に対して複数の例が存在する場合があり、これらは末尾の_xxxで区別されます。
  2939  // ここで、xxxは大文字で始まらない接尾辞です。
  2940  //
  2941  // 以下に例示の例を示します:
  2942  //
  2943  //	func ExamplePrintln() {
  2944  //		Println("The output of\nthis example.")
  2945  //		// Output: The output of
  2946  //		// this example.
  2947  //	}
  2948  //
  2949  // ここには、出力の順序が無視される別の例があります:
  2950  //
  2951  //	func ExamplePerm() {
  2952  //		for _, value := range Perm(4) {
  2953  //			fmt.Println(value)
  2954  //		}
  2955  //
  2956  //		// Unordered output: 4
  2957  //		// 2
  2958  //		// 1
  2959  //		// 3
  2960  //		// 0
  2961  //	}
  2962  //
  2963  // テストファイル全体が例として提示されます。それは単一の
  2964  // 例示関数、少なくとも1つの他の関数、型、変数、または定数
  2965  // 宣言を含み、テスト、ベンチマーク、またはファズテストがない場合です。
  2966  //
  2967  // 詳細情報については、testingパッケージのドキュメンテーションを参照してください。
  2968  //
  2969  // # Controlling version control with GOVCS
  2970  //
  2971  // 'go get'コマンドは、gitのようなバージョン管理コマンドを実行して、インポートされたコードをダウンロードすることができます。
  2972  // この機能は、任意のサーバーからコードをインポートできる分散型のGoパッケージエコシステムにとって重要ですが、
  2973  // 悪意のあるサーバーが呼び出されたバージョン管理コマンドを使って意図しないコードを実行する方法を見つけた場合、
  2974  // セキュリティ問題にもなります。
  2975  //
  2976  // 機能とセキュリティの懸念をバランス良く取るために、'go get'コマンドはデフォルトで公開サーバーからコードをダウンロードするために
  2977  // gitとhgのみを使用します。
  2978  // しかし、プライベートサーバーからコードをダウンロードするためには、任意の既知のバージョン管理システム(bzr、fossil、git、hg、svn)を使用します。
  2979  // プライベートサーバーとは、GOPRIVATE変数('go help private'を参照)に一致するパッケージをホスティングするサーバーを指します。
  2980  // GitとMercurialのみを許可する背後にある理由は、これらの2つのシステムが、信頼できないサーバーのクライアントとして実行される問題に最も注目されているからです。
  2981  // 対照的に、Bazaar、Fossil、およびSubversionは主に信頼できる、認証された環境で使用されており、攻撃面としてはあまり注目されていません。
  2982  //
  2983  // バージョン管理コマンドの制限は、直接バージョン管理アクセスを使用してコードをダウンロードするときにのみ適用されます。
  2984  // プロキシからモジュールをダウンロードするとき、'go get'は代わりに常に許可されているプロキシプロトコルを使用します。
  2985  // デフォルトでは、'go get'コマンドは公開パッケージに対してGoモジュールミラー(proxy.golang.org)を使用し、
  2986  // プライベートパッケージまたはミラーが公開パッケージを提供を拒否するとき(通常は法的な理由で)だけバージョン管理にフォールバックします。
  2987  // したがって、クライアントはデフォルトでBazaar、Fossil、またはSubversionリポジトリから提供される公開コードにアクセスできます。
  2988  // なぜなら、それらのダウンロードはGoモジュールミラーを使用し、カスタムサンドボックスを使用してバージョン管理コマンドを実行するセキュリティリスクを引き受けるからです。
  2989  //
  2990  // GOVCS変数は、特定のパッケージ(モジュールまたはインポートパスで識別)の許可されたバージョン管理システムを変更するために使用できます。
  2991  // GOVCS変数は、モジュール対応モードとGOPATHモードの両方でパッケージをビルドするときに適用されます。
  2992  // モジュールを使用するとき、パターンはモジュールパスに対して一致します。
  2993  // GOPATHを使用するとき、パターンはバージョン管理リポジトリのルートに対応するインポートパスに一致します。
  2994  //
  2995  // GOVCS設定の一般的な形式は、カンマで区切られたpattern:vcslistルールのリストです。
  2996  // パターンは、モジュールまたはインポートパスの1つ以上の先頭要素と一致する必要があるグロブパターンです。
  2997  // vcslistは、許可されたバージョン管理コマンドのパイプで区切られたリストであり、または"all"は任意の既知のコマンドの使用を許可し、
  2998  // "off"はすべてのコマンドの使用を禁止します。
  2999  // モジュールがvcslist "off"のパターンと一致する場合でも、元のサーバーが"mod"スキームを使用すると、
  3000  // goコマンドがモジュールをGOPROXYプロトコルを使用してダウンロードするよう指示するため、それでもダウンロードされる可能性があります。
  3001  // リスト内の最初に一致するパターンが適用されます、後のパターンも一致するかもしれません。
  3002  //
  3003  // 例えば、以下を考えてみましょう:
  3004  //
  3005  //	GOVCS=github.com:git,evil.com:off,*:git|hg
  3006  //
  3007  // この設定では、モジュールまたはインポートパスが
  3008  // github.com/で始まるコードはgitのみを使用できます。evil.comのパスはバージョン管理コマンドを使用できません。
  3009  // そして、他のすべてのパス(*はすべてに一致)はgitまたはhgのみを使用できます。
  3010  //
  3011  // 特別なパターン"public"と"private"は、公開および非公開のモジュールまたはインポートパスに一致します。
  3012  // パスがGOPRIVATE変数と一致する場合、そのパスは非公開です。それ以外の場合は公開です。
  3013  //
  3014  // GOVCS変数のルールが特定のモジュールまたはインポートパスと一致しない場合、
  3015  // 'go get'コマンドはデフォルトのルールを適用します。これは現在、GOVCS表記法で'public:git|hg,private:all'と要約できます。
  3016  //
  3017  // 任意のパッケージに対して任意のバージョン管理システムを無制限に使用するには、以下を使用します:
  3018  //
  3019  //	GOVCS=*:all
  3020  //
  3021  // バージョン管理のすべての使用を無効にするには、以下を使用します:
  3022  //
  3023  //	GOVCS=*:off
  3024  //
  3025  // 'go env -w'コマンド('go help env'を参照)を使用して、将来のgoコマンド呼び出しのためのGOVCS変数を設定できます。
  3026  package main