1. ホーム
  2. go

[解決済み] "宣言されているが使用されていない "という迷惑なエラーを回避する方法

2022-03-16 03:18:32

質問

Goを勉強しているのですが、コンパイル時に変数やパッケージを未使用のままにしてはいけないというのが少し面倒に感じています。

これは本当に私の足を引っ張ります。例えば、新しいパッケージを宣言して、後でそれを使おうと思ったり、テストのためにコマンドをアンコメントしたりしたいだけです。私はいつもエラーになり、これらの使用のすべてをコメントしに行く必要があります。

Goでこのようなチェックを回避する方法はないのでしょうか?

どのように解決するのですか?

このエラーは、より良いコードを書くこと、そして宣言したりインポートしたりしたものはすべて必ず使用することを強制するためにあります。そうすれば、他の人が書いたコードを読むのも楽になるし(宣言した変数がすべて使われることが常に確認できる)、デッドコードの可能性も避けられる。

しかし、どうしてもこのエラーを飛ばしたいのであれば 空白の識別子 ( _ ) :

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はどちらも許しません。