0

Go コンパイラは、未使用の変数とインポートについて不平を言います。そのため、未使用の var/script が検出された場合、go スクリプトは gwan 内で実行できません。

この場合、実行中の場合、または単に開始できない場合、gwanは404エラーを提供します

この動作を回避する方法はありますか?

4

2 に答える 2

8

本当に簡単な方法はありません。この動作をオフにするコンパイラ フラグのようなものはありません。そもそもコンパイラが飲み込むことができるコードを渡す方が良いと思います。

編集: FAQ の C/P:未使用の変数/インポートに関するこれらの苦情を停止できますか?

未使用の変数の存在はバグを示している可能性がありますが、未使用のインポートはコンパイルを遅くするだけです。コード ツリーに未使用のインポートが十分に蓄積されると、処理が非常に遅くなる可能性があります。これらの理由から、Go はどちらも許可しません。

コードを開発するとき、これらの状況を一時的に作成するのが一般的であり、プログラムをコンパイルする前にそれらを編集しなければならないのは煩わしい場合があります。

これらのチェックをオフにするか、少なくとも警告に減らすコンパイラ オプションを求める人もいます。ただし、コンパイラ オプションは言語のセマンティクスに影響を与えるべきではなく、Go コンパイラは警告を報告せず、コンパイルを妨げるエラーのみを報告するため、このようなオプションは追加されていません。

警告がない理由は 2 つあります。まず、文句を言う価値がある場合は、コードを修正する価値があります。(そして、修正する価値がない場合は、言及する価値はありません。) 2 つ目は、コンパイラに警告を生成させることで、コンパイルにノイズが発生する可能性のある弱いケースについて実装が警告し、修正が必要な実際のエラーをマスクするようになります。

ただし、状況に対処するのは簡単です。空白の識別子を使用して、開発中に未使用のものを保持します。

import "unused"

// This declaration marks the import as used by referencing an
// item from the package.
var _ = unused.Item  // TODO: Delete before committing!

func main() {
        debugData := debug.Profile()
        _ = debugData // Used only during debugging.
        ....
}
于 2013-01-18T10:43:10.610 に答える
-1

これは重複した Go 言語の質問です。以下を参照してください。

Go:「宣言されたが使用されていない変数」コンパイルエラー

Go コンパイラは"unused variable"致命的なエラーとして扱います。これは、他のすべての言語が警告として扱うものであるため、スクリプト エラーを修正できるように G-WAN が停止します。

ここで G-WAN ができることは何もありません。期待どおりに Go を使用する必要があります。

于 2013-01-19T15:51:57.230 に答える