このような宣言は有効ではあるものの、パッケージのエクスポートされた識別子が使用できなくなったり、コードを読む際に混乱したりする原因になります。
例:
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
}
変数名 fmt と iio はインポートパッケージの名前と競合しています。 後で混乱しないように、これらの変数は名前を変更することをお勧めします。