私は Go を学習していますが、コンパイル時に変数やパッケージを未使用のままにしてはいけないのが少し面倒だと感じています。
これは本当に作業のスピードをかなり落とします。たとえば、新しいパッケージを宣言して後で使用する予定だったり、テストのためにいくつかのコマンドのコメントを解除したりしたい場合です。常にエラーが発生し、それらの使用をすべてコメント化する必要があります。
Go でこの種のチェックを回避する方法はありますか?
ベストアンサー1
このエラーは、より良いコードを記述し、宣言またはインポートしたすべてのものを必ず使用するように強制するためにあります。これにより、他の人が記述したコードが読みやすくなり (宣言されたすべての変数が使用されることが常に確実になります)、デッドコードの可能性を回避できます。
しかし、本当にこのエラーを回避したい場合は、空白の識別子(_
) :
package main
import (
"fmt" // imported and not used: "fmt"
)
func main() {
i := 1 // i declared and not used
}
なる
package main
import (
_ "fmt" // no more error
)
func main() {
i := 1 // no more error
_ = i
}
kostixがコメントで述べたように、Goチームの公式の立場は次の通りです。FAQで:
未使用の変数が存在するとバグの兆候がある可能性がありますが、未使用のインポートはコンパイルを遅くするだけです。コード ツリーに未使用のインポートが十分に蓄積されると、処理が非常に遅くなる可能性があります。これらの理由から、Go ではどちらも許可されません。