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

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

名前空間の構造

名前空間の構造化に関連する概念

名前空間もオブジェクトと考えてツリー構造をなす。ルートノードの名前空間大域名前空間またはレベル0名前空間と呼ぶ。

名前空間は親子関係があるが、同時に寿命がある。大域名前空間は、親子関係の元であるだけでなくて、寿命も制御していて、大域名前空間がなくなるとき、すべての子の名前空間もなくなる。

  • 名前空間には、ローカル名をキーとしてオブジェクトが登録されている。オブジェクトの一種として子名前空間がある。
  • 生成されると、親がなくなるまで生きる名前空間上掛け名前空間と呼ぶ。
  • 親より前に無くなる可能性がある名前空間入れ子名前空間と呼ぶ。
  • 親子関係でシャドーイングが起きる。しかし、上書きはしない。
  • 上掛け名前空間であっても、シャドーした名前にアクセスする方法はある。したがって、シャドーの代わりに変更はできない。
  • 親から名前で指される名前空間は名前付き名前空間
  • 親から出る子供名前空間が唯一のとき(一人っ子)、無名名前空間が許される。
  • 任意の時点で、カレント名前空間が唯一に決っている。