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

Unknow user · November 09, 2012 · Last by wyh770604 replied at November 12, 2012 · 2052 hits

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 是匿名的,没法放在变量里传递,大概是这样。

Unknow user #5 November 12, 2012

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

You need to Sign in before reply, if you don't have an account, please Sign up first.