私は以下のクラスを持っている:なぜinstance_evalはProcでは成功しますが、Lambdaでは成功しませんか?
class User
code1 = Proc.new { }
code2 = lambda { }
define_method :test do
self.class.instance_eval &code1
self.class.instance_eval &code2
end
end
User.new.test
はなぜ二instance_eval
はwrong number of arguments (1 for 0)
エラーで失敗していますか?
関連項目:http://stackoverflow.com/questions/12648157/instance-evals-block-arguments-documented-purpose – rampion
私のバージョンでは、ラムダは引数を取っていません。そして、私はinstance_evalの時点では何も渡していません。だから、なぜこの議論の問題の数が不一致なのか。 –
'instance_eval'はproc/lambdaに対して自己を生成しています。 – pdoherty926