LoginSignup
163
127

More than 5 years have passed since last update.

【Go】import 書き方まとめ

Last updated at Posted at 2015-08-29

Go 初心者のため、勉強も兼ねて import の書き方についてまとめました。

相対パスでのインポート

import "./model"

この方法による import はおすすめされていないようです。

絶対パスでのインポート

import "shorturl/model"

絶対パスを指定してインポートします。

単一行での import

import "fmt"
import "string"

一行に一つのパッケージを記入する書き方です。

グループ化

import (
    "fmt"
    "string"
)

一つの import ステートメントで複数のパッケージをインポートする書き方です。

ドット操作

import (
    . "fmt"
    "string"
)

通常、「fmt.Println("hello world")」と書くところをドットをつけてインポートすると「Println("hello world")」と書くことができます。
つまり、ドット付きインポートはパッケージの関数を呼び出す際にパッケージ名を省略して書くことができます。

エイリアス操作

import (
    f "fmt"
)

このような書き方でパッケージ名にエイリアスをつけることができます。
上の場合、「fmt.Println("hello world")」のかわりに「f.Println("hello world")」とエイリアスを用いて書くことができます。

アンダースコア操作

import (
    "database/sql"
    _ "github.com/ziutek/mymysql/godrv"
)

インポートしたパッケージの関数を直接は使わないけれど、依存関係によってインポートの必要がある時にinit関数だけを実行するとういことですかね…。
(完全には理解しきれていない…´・ω・`)

_操作はこのパッケージをインポートするだけでパッケージの中の関数を直接使うわけではなく、このパッケージの中にあるinit関数をコールします。

インポート宣言は、インポート「する側」と「される側」の依存関係を宣言します。自分自身のパッケージをインポートすること、またはインポートしたパッケージ内でエクスポートされている識別子を一切参照しないことは誤った使い方です。インポートによる副作用(初期化)のためだけにパッケージをインポートするときは、パッケージ名としてブランク識別子を使ってください。

参考

http://golang.jp/2010/01/1061
http://astaxie.gitbooks.io/build-web-application-with-golang/content/ja/02.3.html#import
http://qiita.com/shiena/items/c1ac3192af3b00f413ac

163
127
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
163
127