`
orez88
  • 浏览: 3330 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表

Procs and Lambdas(2)

    博客分类:
  • ruby
proc是block的对象形式,它的行为像是一个block,lambda和proc之间有些细小的差别,lambda更像一个方法,而不是一个block,调用一个proc就像yield一个block,调用一个lambda就像在调用一个方法(当然还是有区别的),在ruby1.9里,你可以使用lambda?来查看这个对象究竟是一个lambda还是一个proc。下面,是proc和lambda的一些区别: 1,Return in blocks,procs,and lambdas 在一个block或proc中执行return,程序将从包含这个block或proc的方法中返回 def test pu ...
block在ruby里是一个词詓的概念,它不是对象,不能被对象操作,但是它能通过一个proc或者是一个lambda表现出来。Procs的行为像block(block-like behavior),lambdas的行为更像一个方法(method-like behavior)。但是两者都是Proc对象,这点可以通过使用class方法看出来。 创建Proc对象: 1,通过使用&前缀的方法参数创建一个proc def makeproc(&p) # Convert associated block to a Proc and store in p p ...
方法是一个有参数,有名字并且和对象关联的代码块,对象(更确切叫法是消息的接收者)调用方法,返回方法中最后一个表达式(ruby中基本上没有语句的概念,全是表达式)的值。很多语言都区分方法和函数,方法和对象相关。在ruby中,一切都是对象,即使你定义一个全局的函数,看上去不和任何对象关联,而实际上它被严格的定义为Object类的私有方法 irb(main):012:0> def hello irb(main):013:1> end => nil irb(main):014:0> Object.private_methods.grep :hello => [:h ...
Global site tag (gtag.js) - Google Analytics