`
任清宇
  • 浏览: 21570 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ruby 元编程 第二版随笔(三)

    博客分类:
  • ruby
阅读更多

 

   执行方法

   method execution

 

         调用方法时,Ruby要做两件事:首先找到这个方法,然后执行这个方法。到目前为止,我们只学会了如何找到这个方法,接下来看看如何执行方法。

 

         假设我们自己就是Ruby解释器,现在调用了一个名叫my_method的方法,我们先找到方法,发现该方法定义如下:

         

def my_method
  temp = @x + 1
  my_other_method(temp)
end

         为了执行这个方法,需要知道两个地方。 首先,实例变量@x属于那个对象?其次,应该在那个对象上调用方法my_other_method?

         我们凭直觉就能知道:@x实例变量和 my_other_method方法都属于接受者----那个最初调用,my_method方法的对象。 不过, Ruby可没有那么强的直觉。调用方法时,Ruby需要持有一个接收者的引用,正式由于这个引用,Ruby才知道那个是接收者,再用它来执行这个方法。

 

self关键字

 

         Ruby的每一行代码都会在一个对象中被执行------这个对象就是所谓的当前对象。当前对象也可以用self表示,因为可以用self关键字来对它进行访问。

 

         任何时刻,只有一个对象能充当当前对象,而且没有那个对象能够长期充当这个角色。调用一个方法时,接收者就成为self。从这一刻起所有的实例变量都是self 的实例变量,所有没有明确指明接收者的方法都在self上调用。一旦代码转而调用其他对象的方法,这个对象就成为了self。

        

class MyClass
  def testing_self
    @var = 10           #self的一个实例变量
    my_method()      #与self.my_method()相同
    self
  end

  def my_method
    @var = @var + 1
  end
end

  

obj = MyClass.new
obj.testing_self      # => #<MyClass:0x007f93ab08a728 @var=11>

          调用testing_self方法时,接收者obj就成为self。因此,实例变量@var就是obj 的实例变量,而且my_method方法也在obj上被调用。在my_method方法执行期间,self还是obj,因此@var还是obj对象的实例变量。最后,testing_self方法返回self的引用(@var=11)

分享到:
评论

相关推荐

    Ruby元编程第二版中文

    这本书“Ruby元编程第二版”专注于讲解Ruby语言的这一独特特性,旨在帮助开发者更好地理解和利用Ruby的元编程能力。 元编程的基本概念是程序能够自省、修改自身或者在运行时生成新的代码。在Ruby中,元编程的强大之...

    ruby元编程.pdf

    ruby元编程.pdf ruby 元编程 这本书对ruby的调用原理做了非常精辟的分析。 ruby 元编程 这本书对ruby的元编程方式做了比较好的阐释。 ruby 元编程 这本书对结对编程有一个很好的提现。

    《Ruby元编程》PDF版本下载.txt

    ### 二、元编程在Ruby中的应用 #### 2.1 动态构建代码 在Ruby中,可以通过`eval`函数来执行字符串形式的代码,这种方式常用于动态构建代码块。例如,在某些框架中,可以根据用户输入动态生成表单字段或视图组件。 ...

    Ruby元编程 第2版 中文 佩罗塔著 2015.08

    ruby元编程 第2版 中文 目录清晰 方便广大通勤族路上看,如果喜欢请购买正版纸质图书

    Ruby元编程中文版

    Ruby元编程中文版

    Ruby元编程pdf

    Ruby元编程是编程的一种高级技巧,它允许程序员在运行时动态地修改或创建代码,极大地提高了灵活性和代码的可扩展性。Ruby作为一种动态类型语言,其元编程能力尤为强大,使得开发者可以创建出高度定制化的解决方案。...

    Ruby元编程-中文

    ruby 元编程 中文 《Ruby元编程》以案例形式循序渐进地介绍Ruby特有的实用编程技巧。通过分析案例、讲解例题、回顾Ruby代码库的实现细节,作者不仅向读者展示了Ruby编程的优势和Ruby特有的解决问题的方式,更详细开...

    Ruby元编程【英文版】

    #### 二、《Ruby元编程》书籍简介与评价 《Ruby元编程》是一本以案例驱动的方式介绍Ruby元编程技巧的书籍。书中不仅详细解析了Ruby语言的核心特性和元编程机制,还通过具体的例子展示了如何利用这些特性编写简洁、...

    Ruby 元编程

    Ruby 一种面向对象程序设计的脚本语言 本书的第一部分“Ruby元编程”是本书的核心部分...本书的第二部分“Rails中的元编程”是一个元编程实例,Rail是Ruby标志性框架。 在阅读本书之前,需要了解本书的三个附录 A、B、C

    programming+ruby中文版第二版

    《Programming Ruby中文版第二版》是一本专注于Ruby编程语言的权威指南,对于想要深入学习和理解Ruby编程的读者来说,是一本不可多得的资源。Ruby作为一种动态、面向对象的编程语言,以其简洁、优雅的语法和强大的元...

    元编程 Ruby

    在Ruby这种动态编程语言中,元编程是一种核心技术,它不仅仅是一种技巧,更是Ruby和Rails框架中用于提高开发效率和软件复用性的关键方法。 在Ruby语言中,元编程主要通过方法拦截、动态方法定义、元类以及一些特殊...

    Ruby元编程 源代码 Metaprogramming Ruby source code

    Ruby元编程是编程领域中的一个高级技术,它允许程序员在运行时操纵语言的结构和行为。这本《Metaprogramming Ruby》书籍深入探讨了如何利用Ruby的特性进行元编程,帮助开发者提升代码的灵活性、可扩展性和复用性。源...

    Metaprogramming Ruby 2nd Edition ruby元编程

    ### Metaprogramming Ruby 2nd Edition:深入理解Ruby元编程 #### 一、书籍简介与价值 《Metaprogramming Ruby 2nd Edition》是一本深入探讨Ruby语言元编程特性的经典之作。本书不仅适合那些希望深入了解Ruby内部...

    ruby元编程

    《Ruby元编程》以案例形式循序渐进地介绍了Ruby特有的实用编程技巧 元编程 通过分析案例 讲解例题 回顾Ruby代码库的实现细节 《Ruby元编程》作者Paolo Perrotta不仅向读者展示了Ruby编程的优势和Ruby特有的解决问题...

    Programming Ruby中文版(第二版)

    本书是它的第2版,其中包括超过200页的新内容,以及对原有内容的修订,涵盖了Ruby 1.8中新的和改进的特性以及标准库模块。它不仅是您学习Ruby语言及其丰富特性的一本优秀教程,也可以作为日常编程时类和模块的参考...

    Ruby 元编程 中文 高清扫描版

    Ruby 元编程 中文 高清扫描版, 完整中文版

Global site tag (gtag.js) - Google Analytics