Ruby lambda参数

前端之家收集整理的这篇文章主要介绍了Ruby lambda参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
代码按预期工作(什么都不做,甚至不会产生警告/错误):
l = lambda {|i|}
l.call(1)

代码产生警告(警告:块参数的多个值(0为1)):

l = lambda {|i|}
l.call

并且这个代码失败并出现错误(ArgumentError:参数数量错误(0为2)):

l = lambda {|i,y|}
l.call

我以为lambda需要传递所有的参数.

从第二个例子我看到它不是.为什么只有一个参数被赋予并且按照预期的方式工作(失败与错误)多个参数?

PS:ruby 1.8.6(2008-08-11 patchlevel 287)[universal-darwin9.0]

更新:我用ruby 1.9.1p376检查了这些样本.它的工作原理如下 – 第二个例子也会产生错误.看起来这是1.8版本的功能(或<= 1.8)

解决方法

兰布斯很奇怪,当你有不到两个参数时,他们的行为是不同的.查看 this article了解更多信息.
原文链接:https://www.f2er.com/ruby/272152.html

猜你在找的Ruby相关文章