Tôi có lớp sau:Tại sao instance_eval lại thành công với một Proc chứ không phải với 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
Tại sao thứ hai instance_eval
thất bại với một lỗi wrong number of arguments (1 for 0)
?
Cũng liên quan: http://stackoverflow.com/questions/12648157/instance-evals-block-arguments-documented-purpose – rampion
Trong phiên bản lambda của tôi không tham gia bất kỳ đối số nào. Và tôi không đi qua bất kỳ lúc nào của instance_eval. Vì vậy, tại sao vấn đề này của số đối số không khớp. –
'instance_eval' là tự cung cấp cho proc/lambda. – pdoherty926