所以这种模式:
def foo(&block)
block.call
end
foo lambda { puts 'hi' }
导致这个:
wrong number of arguments (1 for 0) (ArgumentError)
使用Ruby 1.9.3。
我这样做错了吗?
答案 0 :(得分:6)
你不需要lambda,只需要块:
def foo(&block)
block.call
end
foo { puts 'hi' }
如果要传递proc,请使用普通参数:
def foo(ohai)
ohai.call
end
foo lambda { puts 'hi' }