이러한 선언은 허용되긴 하지만 이러한 선언은 패키지에서 내보낸 식별자를 선언한 다음 또는 생성한 다음에 사용하는 것을 불가능하게 하여 코드를 읽을 때 혼란을 야기합니다.
예:
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가 가져오기된 패키지의 이름과 충돌합니다. 추후 코드에서 혼동되지 않도록 이러한 변수의 이름을 변경하는 것이 좋습니다.