このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

パッケージと名前

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