組織化と可視性制御

  • モジュール(Leanモジュールと外部・他言語モジュール)
  • 名前空間
  • セクション

キーワード

  • (module は無い、欲しかったが)
  • import
  • namespace
  • section
  • open : pretectedなら修飾必要、privateは見えない。export は修飾なしになる。
  • scoped : 名前空間内に閉じ込める。
  • local : 名前空間とセクション内に閉じ込める。
  • private : 不可視
  • protected : 可視だが、openで別名が作成されない。
  • export : open時に、行き先に別名を作成する。

ソースコードの特定点において、常にカレントの名前空間/セクションがある。名前空間/セクションに入ること/出ることができる。カレントの名前空間内に、他の名前空間の名前をぶちまけることができる。「ぶちまける」の実態は別名の作成。

大域名前空間は _root_ で参照できる。が、すべての名前が常に見えているわけではなくて、ロードしたモジュールたちが提供〈provide〉する名前しか見えない。