首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby lambda参数

Ruby lambda参数
EN

Stack Overflow用户
提问于 2010-02-10 04:25:16
回答 2查看 32.2K关注 0票数 25

这段代码按预期工作(什么也不做,甚至不会产生警告/错误):

代码语言:javascript
复制
l = lambda {|i|}
l.call(1)

此代码生成警告(警告:一个块参数有多个值(0代表1)):

代码语言:javascript
复制
l = lambda {|i|}
l.call

此代码失败并返回错误(ArgumentError:参数数量错误(2为0)):

代码语言:javascript
复制
l = lambda {|i, y|}
l.call

我认为lambda需要传递所有的参数。

从第二个例子中我发现它不是这样的,为什么它在只给出一个参数的情况下工作,而在有多个参数的情况下按预期工作(由于错误而失败)?

PS: ruby 1.8.6 (2008-08-11补丁级别287)通用-darwin9.0

更新:我已经用ruby 1.9.1p376检查了这些示例。它按照预期工作--第二个例子也产生了一个错误。看起来这是1.8版本(或<=1.8)的一个特性

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2232283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档