ジレンマ
次の Go コード スニペット:
//go:build (386 || amd64 || amd64p32) && gccgo // +build 386 amd64 amd64p32 // +build gccgo package cpu
ビルドとしてtag, // ビルドで十分のようです。 //go:build が明示的に指定されたのはなぜですか? // build には広範なドキュメントがあるのに、// go:build のドキュメントを見つけるのはなぜ難しいのでしょうか?
Go 1.18: 新しいパス
新しいディレクティブ / /go:build が条件付きコンパイルのアプローチとして推奨されており、ツールチェーンは古い // ビルドを積極的に削除します。
Go 1.17: //go:build
//go:build の導入は、// build を置き換えるために Go 1.17 で導入されました。これにはいくつかの利点があります。
共存と移行
スムーズな移行のために両方のディレクティブが共存します。
構文の変更と互換性
移動中Forward
//go:build は、Go の条件付きコンパイルに推奨されるアプローチです。改善された構文、Go fmt との互換性、// build との共存により、将来の Go 開発へのシームレスな移行が保証されます。
以上が`//go:build と // build: Go ではどちらの条件付きコンパイル ディレクティブを使用する必要がありますか?`の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。