変数、引数、または関数の宣言で、使用されているインポートと重複しているものを報告します。

このような宣言は有効ではあるものの、パッケージのエクスポートされた識別子が使用できなくなったり、コードを読む際に混乱したりする原因になります。

例:

import "fmt"
import _ "fmt"
import iio "io"

func _() {
 fmt.Println("demo")
 demo := true
 _, _ = iio.EOF, demo
}

func demo() (int, int) {
 return 1, 2
}

func _() {
 _, _ = iio.EOF, demo
 fmt := "demo"
 iio := 1
 _, _ = iio, fmt
 a, _ := demo()
 _ = a
}

変数名 fmtiio はインポートパッケージの名前と競合しています。 後で混乱しないように、これらの変数は名前を変更することをお勧めします。