[#50611] [質問] メタプログラミングRuby(第1版)の include時の無名クラス という記載について — モコあき <mokoriso@...>
モコあきと申します
5 messages
2017/12/03
[#50625] Ruby の用語:クラス,モジュール,インスタンス — "5.5" <5.5@...>
5.5 です。
5 messages
2017/12/26
[ruby-list:50630] instance_evalで定数が見えない
From:
MASAKI Haruka <yek@...>
Date:
2017-12-28 18:24:26 UTC
List:
ruby-list #50630
正木です。
Ruby 2.2のときにも言及したのですが、2.5でも変わっていないので再度お聞かせ下さい。
インスタンスの特異クラス内では見えるクラスの定数が、instance_evalでは見えません。
これは然るべき挙動なのでしょうか。
***
コード:
class ClassA
CONST="Hello"
end
obj = ClassA.new
class <<obj
def hi1
p CONST
end
end
obj.instance_eval do
def hi2
p CONST
end
end
結果:
"Hello"
Traceback (most resent call last):
1: fron instance_eval_test.rb:20:in `<main>'
instance_eval_test.rb:15:in `hi2': uninitialized constant CONST (NameError)
***