Proc的两个使用方法
ruby 代码
- def some_mtd1 aproc
- aproc.call
- end
- some_mtd1 lambda { puts "aaaaa" }
这个代码等同于下面这个代码段
ruby 代码
- def some_mtd2 &bproc
- bproc.call
- end
- some_mtd2 { puts "aaaaa" }
也等同于下面代码
ruby 代码
- ab = lambda { |x| puts x }
- ab.call 'aaaaa'
c = lambda { |i| puts i }
c = Proc.new { |i| puts i }
c = proc { |i| puts i }
The above 3 statements do the same thing: instantiate a block object. ‘proc’ is an alias for ‘lambda‘ and they work slightly different than ‘Proc.new‘. In Ruby 1.9, ‘proc’ will probably be an alias for ‘Proc.new‘ instead.