パッケージと名前
- パッケージ名:パッケージディレクトリのDESCRIPTIONファイルのPackage:項目に書かれる名前。パッケージ名とVersion:によってパッケージが識別される。
- (パッケージの)名前空間名: 名前空間レジストリに登録されるキー。パッケージ名と同じ。
- 名前空間のパッケージ名: nsenv$.packageNameで得られる名前。baseパッケージの名前空間にはこれがない。
- (パッケージの)エクスポーター: library(), require() でサーチパスにアタッチされる環境。isNamespace()ではFALSEになるので名前空間とは呼ばないが、意味的には(広義の)名前空間。
- エクスポーターの環境名: environmentName(exptr)で取れる名前。パッケージ名に"package:"が接頭辞として付く。この接頭辞がエクスポーターの目印。
- スコープ修飾子: スコープ演算子'::'の前に付く接頭辞。名前空間名と同じ。したがって、パッケージ名と同じ。公開名(エクスポートされたオブジェクト)は'::'、非公開名は':::'。
- スコープ修飾子は、getNamespace("nsName")$name に相当する。
- 全ての名前空間とサーチパス(エクスポーターのスコープチェーン)を串刺ししての名前の検索には、getAnywhere()を使う。
- 注意:名前空間オブジェクトの環境名は、パッケージ名と同じで接頭辞は付かない。接頭辞"namespace:"を付けているのは表示だけ。isNamespace(env) がTRUEのときに付けている。つまり、接頭辞には、環境名に明示的に付けている場合と、表示側で自動的に(勝手に)付ける場合がある。