Go、mainパッケージを分割したときにgo runが実行できない!
パッケージを分割して別のファイルにすることができる。
例えばmainパッケージを
app.go
main.go
と2つのファイルに分けて、
package main
と書き始めれば、2つともmainパッケージとみなされる。
しかし、その場合は、いつものように
go run main.go
実行することはできない。
go runコマンドは、指定されたmain.goのみを実行対象として選択するので、
mainパッケージとして分けたapp.goは実行されない
app.goを含めて実行させるには、
$ go run main.go app.go
のように、mainパッケージを定義しているGoファイルをすべて列挙するか、
$ go run *.go
とワイルドカードを使って指定する必要がある。
ずっと go run main.go で実行していて、app.goで定義した関数・変数が全然参照できないじゃん!って思っていたら、こういうことでした。