s = Proc.new {|x|x*2}
puts s.call(5)
-> 10
def foo(&a)
a.call(5)
end
puts "test foo:"
foo(s)
Когда я пытаюсь вызвать описанный выше процесс, я получаю:
foo: wrong number of arguments (1 for 0) (ArgumentError)
Я ожидал, что смогу передать процедуру методу, если метод определен с таким типом подписи:
def foo(&a)
а затем я могу выполнить процедуру внутри foo следующим образом:
a.call(5)