①
m = Module.new CONST = "Constant in Toplevel" _proc = Proc.new do CONST = "Constant in Proc" end m.instance_eval(<<-EOS) CONST = "Constant in Module instance" def const CONST end EOS m.module_eval(&_proc) p m.const
②
module M CONST = "Hello, world" end M.instance_eval(<<-CODE) def say CONST end CODE p M::say
①の「m.instance_eval(<<-EOS)」は繋がって出力されるのに
②はの「M.instance_eval(<<-CODE)」はエラーになるのはなぜなのでしょうか?
同じ文字列の「instance_eval」なのに処理が異なる理由が調べましたがわかりませんでした。
回答2件
あなたの回答
tips
プレビュー