Ruby 里面主要的可调用的对象是 Proc 对象,Lambdas,方法对象。Proc 是独立的代码序列,你可以创建,存储,可以作为方法的参数,你愿意的话,也可以使用 call 方法执行它。Lambdas 跟 Proc 对象很像,Lambda 其实就是 Proc 对象,不过稍有不同。
Proc 对象
用 Proc.new 创建一个 Proc 实例:
pr = Proc.new { puts "inside a proc's block" }上面的代码块就是 Proc 的主体,调用 Proc 的时候会执行代码块里的东西:
pr.call
结果是:
inside a proc's block
给 proc 方法一个代码块,它会给你返回一个 Proc 对象。
proc { puts "hi!" }Procs 与 Blocks
不是所有的代码块都跟 Proc 一样。
[1,2,3].each {|x| puts x * 10 }上面用了个代码块,但是并没有创建一个 proc。
一个方法可以捕获一个代码块:



