まつもと ゆきひろです

In message "[ruby-list:12082] Re: module in module"
    on 99/02/15, TAKAHASHI Hitoshi <thitoshi / ne.scphys.kyoto-u.ac.jp> writes:
|  高橋です。お答え頂きありがとうございます。

|なるほど。しかしそうするといっそう、
|>> |  そもそも、module 内で module を定義するメリットって何でしょう?
|この疑問の答えが分からなくなります。つまり、
|
|module MainModule
|	....
|  module SubModule
|	  ....
|  end
|end
|
|というのと
|
|module MainModule
|	....
|end
|module SubModule
|	....
|end
|
|と書いた場合との違いが分かりません。

違いは以下の通りです.

  * 内側のモジュールは外側のモジュールを経由してしかアクセス
    できない.つまりMainModule::SubModuleという形式か,また
    は include MainModule; Submodule という形式でしか参照で
    きない.

  * 内側のモジュールからは外側のモジュールで陽に(includeとか
    ではなく)定義されている定数が参照できる.

この違いが望ましいと思えば,ネストしたモジュールを使うわけで
すね.

|>> Tk::WmはTkCommを既にincludeしているクラスにincludeして使うこ
|>> とを想定していました.TkBalloonクラスでのWmの使い方によりま
|>> すが,明示的に include TkComm しておいた方が良い場合がありま
|>> したでしょうか?
|
|例えば、Window Manager の飾りとかのない hello world スクリプトとして、

すいません.私がうっかりしてました.include TkCommは必要です
ね.バグです.いかんなあ,えらそうに発言しておいて.

                                まつもと ゆきひろ /:|)