Goモジュール名やパッケージ名の規則
公式な資料は見当たらなかったけど、実装は x/mod 以下にあって、これがGo本体からインポートされている。
これによると、次の通り。
モジュール名
Section titled “モジュール名”全体のルール
Section titled “全体のルール”モジュール名は、最初のドメイン名と以降のパス名の2つで構成されている。ドメイン名部分で利用できる文字種は以下の通り。
- 数字(0〜9)
- 英字小文字(a〜z)
- 一部の記号(- と .)
パス名の部分で利用できる文字種は
- 数字(0〜9)
- 英字大文字(A〜Z)
- 英字小文字(a〜z)
- 一部の記号(-, ., _, ~)
ただし、モジュール名は - から始めることはできないし、同様にモジュール名は / で終わることもできない。また、ドメイン名には必ず . が必要。
パス名の各要素
Section titled “パス名の各要素”モジュール名を構成する / で区切られた各要素について、以下に一致する要素は禁止。
- 空文字列
- 名前が
.で開始される - 名前が
.で終わる - すべての文字が
.で構成される - 末尾が
~1などチルダと数字の組み合わせ
従って、次のようなモジュール名はエラーになる。
- -example.com/pkg … - で開始している
- example//option … 空の要素がある
- example/ … 末尾が / で終わっている
- mod/../test … 途中に . だけの要素がある
パッケージ名
Section titled “パッケージ名”基本的にはモジュール名と同様だが、以下の違いがある。
- モジュール名に使える文字に加えて + も許される
- 要素の先頭に
.があってもいい