yarv-dev:775
From: SASADA Koichi <ko1 atdot.net>
Date: Mon, 09 Jan 2006 01:47:16 +0900
Subject: [yarv-dev:775] Re: cref with include module
ささだです. Yukihiro Matsumoto wrote: >>module M >> A = :M_A >>end >> >>class A >> include M >> p A #=> :M_A @ ruby 1.8, 1.9 >>end >> >>クラスの見え方は lexical だと思っていたので,M::A を参照しにいくのは変 >>かな,と思ったのですが,そうでもないんでしょうか. > > > 定数の検索順序は > > 自クラス > その一つ外側 > あとはancestorを順次検索 > > です。ですから、lexicalではないです。 なるほど.include すると,M::A が C::A とアクセスできるので「自クラ ス」がAを持っており,それを返した,ということですか. ただ,その場合, module M A = :M_A end class C class A include M p A #=> C::A end end p C::A::A #=> :M_A となるのは,なんとなく統一していないような気がするのですがどうでしょうか. -- // SASADA Koichi at atdot dot net // include (mix-in) は苦手 -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
773 2006-01-08 12:32 [ko1 atdot.net ] cref with include module 774 2006-01-08 19:52 ┗[matz ruby-lang.org ] -> 775 2006-01-09 01:47 ┗[ko1 atdot.net ] 776 2006-01-09 11:04 ┗[matz ruby-lang.org ] 797 2006-02-02 04:27 ┗[ko1 atdot.net ] 912 2006-02-17 17:49 ┗[matz ruby-lang.org ]