玩转Ruby系列:玩转闭包(Block,Proc,lambda)
玩转Ruby系列:玩转闭包(Block,Proc,lambda) - SamSam - ITeye技术网站
玩转Ruby系列:玩转闭包(Block,Proc,lambda)
博客分类:
Ruby/Rails
RubyF#BlogHTML
Block,lambda,Proc要好好理解下,在Ruby中很重要。
Block块就是一个匿名函数,被调用的方法调用,在调用的方法里面通过field调用。Block主要用于迭代。
arr = [1,2,3,4,5]
arr.each{|item| puts item}
Proc也是一个代码块,相当于过程吧
a_proc = Proc.new {|a, *b| b.collect {|i| i*a }}
a_proc.call(9, 1, 2, 3) #=> [9, 18, 27]
Proc.new新建一个Proc对象时,可以不带一个block,只是在定义Proc的方法上带一个block,这个block会变成属于Pr