MENU

golangで「imported and not used」というエラーが出たときの原因と対処法

本ページではアフィリエイトリンク(PR)が含まれています

今回はgolangで「imported and not used」というエラーが出たときの原因と解決策について紹介していきます。

目次

golangで「imported and not used」というエラーが出た

golangで開発を行っていると「redeclared in this block」というエラーに遭遇します。

「imported and not used」はインポートしたパッケージがファイル内のどこにも使用されていない場合に発生するエラーです。

「imported and not used」の原因

例えば、以下のコードのようにfmtパッケージをインポートはしていますが、実際に使っている出力関数はprintln()で、どこにもfmtパッケージは使用されていません。

import (
	"fmt"
)

func main() {

	a := 1
	println(a)
}

この状態でコンパイルを行うと、以下のようにエラーが発生します。

main.go:4:2: "fmt" imported and not used

「imported and not used」の対処法

このエラーを解消するにはインポートしたパッケージを使用するか、使用しないのならimportから削除しましょう。

import (
	"fmt"
)

func main() {

	a := 1
	fmt.Println(a)
}
func main() {

	a := 1
	println(a)
}

今回の場合はどちらの場合も実行結果は1が出力されます。

importを消すちょっとしたコツ

インポートを削除してしまうと、後になってやはり使うとなった場合に復活させるのは少し面倒です。

そんなときは以下のようにimport部をコメントアウトする方法があります。コメントアウトをすることでimport部は読み込まれなくなるので、「imported and not used」エラーは発生しなくなります。

import (
	// "fmt"
)

func main() {

	a := 1
	println(a)
}

他にもパッケージの前にアンダースコア(_)を書くことでパッケージが無効化することができます。

import (
	_ "fmt"
)

func main() {

	a := 1
	println(a)
}

どちらでも結果は変わりませんが、コメントアウトしたほうがimport自体行われないのでいい気がします。

golangをもっと詳しくなりたい方に

golang学習のために筆者が実際に受講したUdemy教材をまとめています。

あわせて読みたい
【入門】golangの学習におすすめのUdemy教材5選 これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...

golang学習のために筆者が実際に読んでおすすめしたい本をまとめています。

あわせて読みたい
【入門】golangの学習におすすめの本/書籍7選 これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...
タメになったらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次