GO言語のビルド時に"imported and not used"を出力させない方法

GO言語をビルドするときに、使っていないパッケージや変数があると「使ってませんよ!」と怒られる。まぁその怒られる内容に行数書いてあるからコメントアウトして対応すればいいのだけど、たくさんあったりするとめんどくさい。そこでコメントアウトする以外の解決策を紹介する。

package main

import (
	"fmt"
	"os"
)

func main() {
	s := "Happy Programming"
	println("Hello World")
}

fmtとosは使っていないので、下記の内容で怒られる。

$ go build main.go
# command-line-arguments
.\main.go:4: imported and not used: "fmt"
.\main.go:5: imported and not used: "os"

そこでこんな記述をソースにする。

package main

import (
	"fmt"
	"os"
)

func main() {
	s := "Happy Programming"
	println("Hello World")

	// ビルドエラー回避
	var _ = fmt.Print
	var _ = os.Args
}

これでパッケージに関しては"imported and not used"で怒られなくなる。しかし、こんどは変数sを使っていないためまた怒られる。

$ go build main.go
# command-line-arguments
.\main.go:9: s declared and not used

変数の場合も同様の対応をとれば怒られなくなる。

package main

import (
	"fmt"
	"os"
)

func main() {
	s := "Happy Programming"
	println("Hello World")

	// ビルドエラー回避
	var _ = fmt.Print
	var _ = os.Args
	var _ = s
}

【2014/07/04追記】
最近知ったのだが、下記の方法でも怒られなくなる。

package main

import (
	_ "fmt"
	_ "os"
)

func main() {
	println("Hello World")

	// fmtもosも使ってないが怒られない!
}