Go言語のパッケージ名 (URLもどき) がコンパイラによって処理されるときの正確なルールが知りたい
Q&A
Closed
以下のようなケースで、Go言語ではパッケージ名としてURLのようなものを指定します。
- Goソース中の
import -
go.mod内のrequire -
go getの引数
これらの大半は github.com/[username]/[module] で始まり、その場合は https://github.com/[username]/[module].git 上の対応するパスからパッケージが取得されることは経験上わかっています。しかし実際には go.opencensus.io のようにホストパートだけでモジュールを構成したり、 v2 などsemantic import pathが付与されている場合もあります。 (github.com/augustoroman/v8 のようにsemantic import pathと紛らわしそうな名前すらあります。)
そこで、これらのURL(のような何か)がどのような形で特定のgitリポジトリ内の特定のディレクトリーとして解決されるのか、優先順位も含めた正確なルールが知りたいです。できれば、文書化された資料にあたれるのが望ましいですが、コンパイラの実装から読み取れる内容でもかまいません。よろしくお願いします。
0 likes