まつもと ゆきひろです
In message "[ruby-list:2644] Re: help"
on 97/04/07, 石塚圭樹 <keiju / shljapan.co.jp> writes:
|けいじゅ@SHLジャパンです.
|トップレベルであるモジュールをインクルードするとそこで定義された関数は
|どこからでも参照可能になりますよね.
|この時の include って何をやっているんですか? というか include は正確に
|はどういう働きをするものなのでしょうか?
トップレベルのincludeはmainオブジェクトの特異メソッドで,
Objectクラスにモジュールをincludeします.Objectは全てのクラ
スのスーパークラスですから,includeされたものはどこからでも
参照可能になるわけです.
クラスにモジュールをincludeするとそのモジュールで定義されて
いるメソッドと定数が参照可能になります.メソッドと定数の探索
順序は
自クラス -> includeされたモジュール -> スーパークラス
になっています.モジュールは多重にはincludeされませんから,
includeしたモジュールが既に(たとえばスーパークラスで)include
されていた場合にはなにもおこりません.
まつもと ゆきひろ /:|)