import
package main
import (
"encoding/json"
"net/http"
"github.com/gorilla/mux"
)
import文はコード内で利用する依存関係を記述する。基本的にエディタであれば保管が効くので意識する必要はない。
goの成型が走ると、1番上のブロックにgo内部に存在する依存関係を、2番目のブロックにサードパーティー的な依存関係を記述してくれる。不要なimportが存在するとエラーになる。ここはJavaなんかと違うので注意。
1. 単一行でのインポート
複数のパッケージをインポートする際、通常は括弧 () を使ってまとめるが、1行でインポートすることもできる。
import "fmt"
import "os"
2. エイリアスを使ったインポート
import文では、パッケージにエイリアスを付けることができる。これにより、パッケージ名を短くしたり、名前の衝突を避けたりすることが可能。
import (
f "fmt" // fmt を f として使用
)
func main() {
f.Println("Hello, World!") // f で fmt を参照
}
3. ドットインポート
import . を使うと、そのパッケージ内の識別子を直接呼び出せるようになる。この方法を使うと、パッケージ名なしで関数を使うことができるが、可読性が落ちるため注意。
import . "fmt"
func main() {
Println("Hello without fmt!") // fmt.Print は不要
}
4. 空白インポート
インポートしたパッケージを直接使わない場合でも、そのパッケージの副作用を利用するために「空白インポート」を行うことがある。
import _ "github.com/lib/pq" // データベースドライバをインポート (直接は使用しない)