パッケージとは?
状態:-
閲覧数:388
投稿日:2018-03-25
更新日:2018-03-25
名前空間を分けるための仕組み
パッケージ句で明示的に宣言する
パッケージに関する禁則事項
循環参照
二つのパッケージがお互いにもう片方をimportをするとコンパイルエラーになる
・以下の2つのパッケージは循環参照によりエラーとなる
package a
import "b"
import "b"
package b
import "a"
import "a"
同一フォルダへ複数パッケージを配置
1つのフォルダ直下に、互いに異なるパッケージが宣言された複数のコードを配置することは出来ない
・以下のような構造はエラーとなる
$GOPATH/
┗src/
┗a/
┣a.go(パッケージ名:a)
┗a2.go(パッケージ名:a2)
┗src/
┗a/
┣a.go(パッケージ名:a)
┗a2.go(パッケージ名:a2)
※逆に、パッケージが同じソースコードであれば同ディレクトリにいくつでも配置が可能
例外
・同フォルダに複数パッケージを配置できる例外的なケースが一つだけある
・ファイル名の(拡張子を除いた)末尾が_testで終わるコードはテストコードとして扱われるが、 テストコードについてはテスト対象のパッケージ名_testというパッケージ名を使用することが許されている
$GOPATH/
┗src/
┗a/
┣a.go(パッケージ名:a)
┗a_test.go(パッケージ名:a_test)
┗src/
┗a/
┣a.go(パッケージ名:a)
┗a_test.go(パッケージ名:a_test)