パッケージとか
やっとGo言語さわれそうになってきたのでちょっとずつ触ってみてます。
で、言語仕様とかはわかってきたのだけど、ソースコードの分割方法がわからなくて試したり調べたりして多分理解したと思うのでメモを。
- ディレクトリ名がimport時に書くimport名(というのかな?)になる
- ディレクトリ配下のソースコードはimport時にすべて読み込まれる?
- ディレクトリ配下のソースコードに書かれるパッケージ名は全て同一のものになる
でいいのかな?
例
$ ls -F asdf/ main.go $ ls asdf/ hjkl.go zxcv.go
$ cat main.go package main import ( "./asdf" ) func main() { qwerty.Zzz() qwerty.Foobar() } $ cat asdf/hjkl.go package qwerty import ( "fmt" ) func Zzz() { fmt.Println("Zzz...") } $ cat asdf/zxcv.go package qwerty import ( "fmt" ) func Foobar() { fmt.Println("Foobar...") }
という感じ。ちなみにhjkl.goかzxcv.goのpackage名がちょっとでも変わるとビルド時に怒られる。
ディレクトリ名でimportしてパッケージ名でアクセスってのがちょっと引っかかるけど、
まあ慣れれば別に気にならないのかな。