Ruby Block, Proc 和 Lambda 的区别

edgar_wang_cn · 2013年08月09日 · 最后由 Justin 回复于 2013年08月12日 · 7336 次阅读

http://awaxman11.github.io/blog/2013/08/05/what-is-the-difference-between-a-block/ 这里用代码详细说明了 Block, Proc 和 Lambda 的区别,主要是:

  • Proc 和 Lambda 都是对象,而 Block 不是
  • 参数列表中最多只能有一个 Block,但是可以有多个 Proc 或 Lambda
  • Lambda 对参数的检查很严格,而 Proc 则比较宽松
  • Proc 和 Lambda 中return关键字的行为是不同的

请看这篇帖子里我的回复,正好有解释到 block,proc,lambda。 http://ruby-china.org/topics/13157 #86 楼

推荐《ruby 元编程》

這篇博文质量不错

《ruby 元编程》讲得很细。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号