传递方法时Lambda问题

时间:2013-10-17 12:26:25

标签: ruby lambda

在我的应用程序中有状态数组,就像这样

 status = ['success','failure','warning']

例如,lambda像这样处理状态数组

 print_status = lambda { |stat| puts stat }

当我尝试在status的每个方法上传递lambda时,我收到一条错误,上面写着“ArugmentError:错误的参数数量(1表示0)”

 status.each(print_status) 

任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

由于阻止和proc不匹配而发生此问题。在您的状态中,每个方法都期望块不是proc。将proc转换为块的理想解决方案是“&”

 status.each(&print_status)

希望此代码可以帮助您解决问题