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