php editor Strawberry は、メインで使用されたことのないパッケージを go コンパイラーがコンパイルするかどうかについての質問に喜んで答えます。 Go 言語では、コンパイラーは未使用のパッケージをコンパイルしません。これは、Go 言語の設計コンセプトがシンプルかつ効率的であることであり、未使用のコードのコンパイルに時間とリソースを無駄にしないためです。したがって、メイン パッケージに他のパッケージが導入されていて、その中の関数や変数が使用されていない場合、コンパイラはこれらの未使用のパッケージを無視するため、コンパイル速度とプログラムの実行効率が向上します。
3つのパッケージA、B、Cなどを含むgoモジュールがあるとします。 main.go とそのすべてのインポートでは、パッケージ A と B のみが使用されています。私の質問は、go build
によって生成されたバイナリにはパッケージ C のコードが含まれているかということです。
バイナリ ビルドには、main から参照されるすべてのシンボルの推移的クロージャーのみが含まれます。これには、インポートされたパッケージの関数とデータ、および使用されるタイプのすべてのメソッドのみが含まれます。したがって、パッケージ内に一度も使用されない関数がある場合、その関数はバイナリには表示されません。ただし、未使用のメソッドを含むデータ型を使用すると、これらのメソッドはバイナリ ファイル内に存在します。
以上がgo コンパイラーは、メインで使用されないパッケージをコンパイルしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。