Go言語:パッケージ

パッケージについての話

  • Goのプログラムはパッケージで構成されている。
  • プログラムの処理は、mainパッケージ内で始まる。
    • mainプログラムで最初にcallされるのは、main関数。
  • 他のパッケージの実装は、importで取り込む。
    • importで指定したパスの最後の要素で、呼び出しできる。
    • 例えば、import "math/rand"で呼び出したら、rand.Intn(10)みたいにしてコールする。
  • importステートメントは、プログラム内で複数回呼び出されてもいいし、複数パッケージを指定してもいい。

パッケージ名

パッケージ:サンプル1

% go run sample.go
12 34

ためしに、main関数をなくして実行してみる。

パッケージ:サンプル2(main関数なし)

% go run sample.go
# command-line-arguments
runtime.main: call to external function main.main
runtime.main: undefined: main.main

ためしに、mainパッケージでなくしてみる。

パッケージ:サンプル3(mainパッケージでない)

% go run sample.go
go run: cannot run non-main package

パッケージ

ドキュメントだとここで、標準添付(?)されているパッケージのリストとドキュメントがみられる。

  • 日本語のドキュメントだと、コンテンツ量がすくない?

パッケージ:time

% go run sample.go
2014-12-28 12:59:15.988540366 +0900 JST
2014-12-28 12:59:16.990855373 +0900 JST

おまけ

インポートしたパッケージのプレフィックスを使わないとか、プライベートな関数を呼び出す方法もあるらしい。