Golang のパッケージ構造がわからん
Golang のパッケージ構造がわからんちん。
go run main.go すると
カレントパッケージにある
main パッケージ の main 関数が実行される。
ふむ、それはわかった。
カレントパッケージに別ファイルを作って
そこにある関数をよびだそうと思ったら
あれーって頭が混乱した。
そもそもの目的は
せっかく写経したソースを
整理して GitHub に公開していこうと思ったから。
そーゆーわけで
そこからちょっと調べてみることに。
うまく情報が探せてないけど、
こちらのブログ様を参考にさせていただいた。
そして、実際トライしながら、自分なりに考察してみた。
例えば・・・
gosample パッケージにある main.go に
package main func main()
と書くのが違和感なのか、私は。。。
以下、正しくない記述だけど、
package gosample func main()
の方がしっくりきてしまう。。。慣れか。。。
Golang の言語仕様に慣れないと。
というより、理解せよ、だよなぁ。
main は "カレントパッケージのメイン" ぐらいの意味で捉えてたらスムーズなのかな。
むしろ、わざわざ自分のパッケージ名を名乗るのは
他パッケージから参照されることを明示しているのか。
逆にいうと、main パッケージの実行はそのパッケージだけに限定される。
そう考えると、確かにシンプルでわかりやすい(かも?)。
しかも、それって逆にいうと
もし main パッケージの中に記述したメソッドを
他パッケージで使用したいってなった場合は
main パッケージ以外に切り出す必要があるってことかぁ。
というか、そもそも
main パッケージ ≠ パッケージ
ってことな気がしてきた。。。
(「main バッケージ」ってわざわざ呼ぶくらいだもんなぁ。)
あと、自分がファイル名にとらわれたりするあたり、
だいぶ頭が java 化されてる気がする。。。ぐすん。。。
まだ全体邸によくわからんけど、
じょじょに Golang のこの辺りも理解できるよう勉強しよう。。。
応急処置として、ひとまず sub パッケージに切り出すことにした〜。
へぼい。