Proc 和 代码块

文章是从个人博客 搬过来的,大家也可以直接访问我的个人博客哦http://www.iwangzheng.com/

如何将一段代码从对象中取出并将它像对象一样传递。在ruby中,一个Proc是一个包含一段代码的对象。创建Proc的最常用的方法是使用Lambda方法。

irb(main):031:0> hello = lambda do
irb(main):032:1* puts ‘hello’
irb(main):033:1> puts ‘i am’
irb(main):034:1> end
=> #<Proc:0x00000001abb250@(irb):31 (lambda)>
irb(main):035:0> hello.call
hello
i am
=> nil

ruby 将位于do和 end之间的那部分代码称为代码块。Lambda方法返回一个新的Proc对象,这个对象是do和end之间代码的容器,我们的hello变量指向Proc对象。

原文地址:https://www.cnblogs.com/iwangzheng/p/3653710.html