けいじゅ@SHLジャパンです. In [ruby-list :02648 ] the message: "[ruby-list:2648] Re: help ", on Apr/07 14:38(+0200) matz / caelum.co.jp (Yukihiro Matsumoto) writes: >|この時の include って何をやっているんですか? というか include は正確に >|はどういう働きをするものなのでしょうか? > >トップレベルのincludeはmainオブジェクトの特異メソッドで, >Objectクラスにモジュールをincludeします.Objectは全てのクラ >スのスーパークラスですから,includeされたものはどこからでも >参照可能になるわけです. んー. なるほどそういう動作をしていたのですか... >クラスにモジュールをincludeするとそのモジュールで定義されて >いるメソッドと定数が参照可能になります.メソッドと定数の探索 >順序は > > 自クラス -> includeされたモジュール -> スーパークラス > >になっています. もっと正確には: 自クラス -> includeされたモジュール -> スーパークラス -> スーパークラ スでincludeしたモジュール -> ... でいいんですよね? やっと話しが元に戻って, 気になることについてですが, トップレベルでイン クルードされると method_missing()を利用した Proxyクラスなどは動作が変 わることになりますね. つまり, $_-moduleがあったとして, それをトップ レベルでインクルードするとStringを利用したProxyクラスなどは動作が異なっ てくることになりますね. こういう現象は問題ある/ない?? __ .....................................石塚 圭樹@SHLジャパン(株)... ------------->アドレス変わりました!! e-mail: keiju / shljapan.co.jp <----