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)
и тогда я могу выполнить proc insiide foo следующим образом:
a.call(5)