各位大大,我最近初学 ruby,发现一个奇怪的问题。我看书上讲可以将 Proc 对象前面加上&,作为 block 传递给方法。
pr1 = Proc.new {puts "hello"}
5.times &pr1
这两行可以成功运行,输出五行 hello
但是,我试了 Proc 对象的 lambda 定义方法
pr2 = lambda {puts "hello"}
5.times &pr2
程序报错了:“ArgumentError: wrong number of arguments (1 for 0)”,说参数不对。
我想了很久没明白,请教各位大大是怎么回事,谢谢。