Ruby What's the difference between block, Proc and lambda

匿名 · 2012年11月09日 · 最后由 wyh770604 回复于 2012年11月12日 · 2056 次阅读

What's the difference between block, Proc and lambda

look look book

这几个概念我也一直搞不清楚......

元编程书中有专门讲述。抄写一段 ri

lambda { |...| block } -> a_proc


Equivalent to Proc.new, except the resulting Proc objects check the number of parameters passed when called.

就是说 lambda 会检查参数个数。

都是属于可调用对象,block 是匿名的,没法放在变量里传递,大概是这样。

匿名 #5 2012年11月12日

#4 楼 @chenge 基本上差别都是 very subtle, 一般 block 用 iterator 较多,其他两个 Proc 和 lambda 区别很小http://www.tweetegy.com/2012/01/ruby-blocks-procs-and-lambdas/

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