加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby lambda参数

发布时间:2020-12-16 19:53:13 所属栏目:百科 来源:网络整理
导读:该代码按预期工作(什么都不做,甚至不会产生警告/错误): l = lambda {|i|}l.call(1) 此代码产生警告(警告:块参数的多个值(0为1)): l = lambda {|i|}l.call 并且这个代码失败并出现错误(ArgumentError:参数数量错误(0为2)): l = lambda {|i,y|}l.call 我
该代码按预期工作(什么都不做,甚至不会产生警告/错误):
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了解更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读