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