Mam następujące klasy:Dlaczego parametr instance_eval powiedzie się z Proc, ale nie z 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
Dlaczego sekund instance_eval
niepowodzeniem z błędem wrong number of arguments (1 for 0)
?
Również istotne: http://stackoverflow.com/questions/12648157/instance-evals-block-arguments-documented-purpose – rampion
W mojej wersji lambda nie przyjmuje żadnych argumentów. I nie przekazuję żadnych w czasie wystąpienia klasy instance_eval. Dlaczego więc ten numer argumentów jest niezgodny? –
'instance_eval' oddaje samo do proc/lambda. – pdoherty926