実現したいこと
Go言語でpackage main
が書かれていないコードをどうやって実行しているのか教えて欲しい
前提
Go言語の解説記事ではgo run .
した時、カレントディレクトリにあるpackage main
ファイルのmain()
関数を実行すると書かれています。
1ディレクトリにある*.go
ファイルは全て同じpackage
である必要があります。
ですが、世に出ているサードパーティのパッケージでは、トップディレクトリのgoファイルでpackage main
ではない独自の値になっている事が多いです。
例えば自分が気になった第三者のライブラリですが、ファイルを見るとpackage box
やpackage isatty
と記載されています。
https://github.com/nyaosorg/go-box
https://github.com/mattn/go-isatty
これらのライブラリも作者さんは開発中に何度か実行し、動作のトライ&エラーを繰り返していると思うのですが
どうやって実行しているのでしょうか?
package box
と書かれているのでgo run .
は使えない認識です。
まさか、開発時のローカルではpackage main
に一時的に書き換えて、コミット時に毎回戻す という面倒な事をしているとは思えないですし、
開発中であればデバッグ実行等もしたいはずなので、何らかの方法でgo run .
をしていると思うのですが。
以上、よろしくお願いします。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2023/06/22 07:57