[#37762] tcltklibの作りかた — Mitsuo Igarashi <mitsu5@...>
mitsu5 です。
8 messages
2003/06/07
[#37774] Ruby/zlibのインストール方法はどのようにするのですか? — "igusa" <igusa@...>
いぐさです。
6 messages
2003/06/09
[#37801] 動的に生成したクラスメソッドのundef — Ryuichiro Hara <r@...>
動的に生成したメソッドを除く方法を知りたく質問します。
6 messages
2003/06/19
[#37814] Re: Oniguruma and PHP — kkosako@...
> スラッシュドットでも話題になっていましたが、Onigurumaを
1 message
2003/06/23
[#37815] 配列の使い方 — Kouji Miyauchi <koji.miyauchi@...>
宮内と申します。
9 messages
2003/06/23
[#37830] reference from nested class to a constant in a module included by the parent class — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
6 messages
2003/06/27
[#37838] Raccのインストールについて (MacOS X) — "Ken'ichiro Nakatani" <kenzo@...>
はじめまして。中谷と申します。
8 messages
2003/06/27
[#37839] Re: Raccのインストールについて (MacOS X)
— Ogino Junya <ogino@...>
2003/06/28
荻野ともうします。
[ruby-list:37837] Re: reference from nested class to a constant in a module included by the parent class
From:
NISHIMATSU Takeshi <t-nissie@...>
Date:
2003-06-27 21:40:57 UTC
List:
ruby-list #37837
西松です.
青木さん [ruby-list:37835] もりきゅうさん [ruby-list:37836] ありがとうございます:
まとめますと, あるクラスから見える定数は
自分で定義されたもの
その外側のクラスで定義されたもの
そのまた外側で定義されたもの(以下トップレベルまで続く、トップレベル含まない)
スーパークラスで定義されたもの
そのスーパークラスで定義されたもの(以下Objectまで続く、Object含まない)
注意1: 定数の検索は外方向に向かってのみ.
注意2: クラスでincludeされたA_Module (実質的に
SubClass < (A_Module) < SupClass という継承と等しい)
の中の定数は上記の「スーパークラスで定義されたもの」に相当★する.
注意3: トップレベル, Object での include は特殊なので,
それを一般化して考えることはできない.
でしょうか. ぼくのちと恥ずかしい例もつけておきます.
# incmod.rb
module M
ConstM = "M"
end
class Parent
ConstP = "P"
include M
p ConstP # => "P"
p M::ConstM # => "M"
p ConstM # => "M" ★
class Nested
p ConstP # => "P"
p M::ConstM # => "M"
#p ConstM # => uninitialized constant Parent::Nested::ConstM (NameError)
end
end
p Parent::ConstP # => "P"
p Parent::M::ConstM # => "M"
p Parent::ConstM # => "M"
p M::ConstM # => "M"
#p ConstM # => uninitialized constant ConstM (NameError)
include Math
p PI # => 3.14 トップレベルでincludeしたmodule中の定数
ConstT = "Top"
class C
p PI # => 3.14 トップレベルでincludeしたmodule中の定数
p ConstT # => "Top" トップレベルで定義した定数
class Cn
p PI # => 3.14 トップレベルでincludeしたmodule中の定数
p ConstT # => "Top" トップレベルで定義した定数
end
end
じつは, 青木さんの『Rubyソースコード完全解説』を読んでいて
湧いた疑問でした. ちゃんと読めていないことが発覚しましたが.
もりきゅうさんのていねいな解説でやっとぼくの誤解がとけました.
ありがとうございます.
--
love && peace && free_software
西松 毅