s = Proc.new {|x|x*2}
puts s.call(5)
-> 10
def foo(&a)
a.call(5)
end
puts "test foo:"
foo(s)
上記のprocを呼び出そうとすると、次のようになります。
foo: wrong number of arguments (1 for 0) (ArgumentError)
私の期待は、メソッドがこのタイプのシグニチャーで定義されている場合、procをメソッドに渡すことができるということでした。
def foo(&a)
次に、次のようにprocinsiidefooを実行できます。
a.call(5)