`
阿昭1981
  • 浏览: 3899 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

ruby中的覆盖关系

    博客分类:
  • ror
阅读更多
下面两段代码有不同的效果:
class T1 
  
  attr_reader :foo
  @foo = 'foo1'
  def foo
  	return 'foo3'
  end
  def initialize(foo2)
  	@foo = foo2
  	@foo = self.foo
  end
end  
  
i1 = T1.new('foo2') 
puts i1.foo

结果:
PS F:\ror\iStar\SToDoOL> ruby mytest\cl1.rb
foo3

class T1 
  def foo
  	return 'foo3'
  end
  attr_reader :foo
  @foo = 'foo1'
  
  def initialize(foo2)
  	@foo = foo2
  	@foo = self.foo
  end
end  
  
i1 = T1.new('foo2') 
puts i1.foo

结果:
PS F:\ror\iStar\SToDoOL> ruby mytest\cl1.rb
foo3
这段代码由于def foo 函数被attr_reader :foo生成的foo代替了,所以在initialize中执行的是@foo=@foo
如果再改一下:
class T1 
  
  attr_reader :foo
  @foo = 'foo1'
  
  def foo
  	return @foo+'foo3'
  end
  
  def initialize(foo)
  	@foo = foo
  end
end  
  
i1 = T1.new('foo2') 
puts i1.foo
输出结果:
PS F:\ror\iStar\SToDoOL> ruby mytest\cl1.rb
foo2foo3
这个比较有趣,因为@foo=foo解释起来执行了两次,一次是@foo = foo(参数) 一次是函数foo

0
0
分享到:
评论

相关推荐

    Ruby-Mutations用于编写安全可重用和可维护的代码Ruby和Rails应用程序

    在Rails应用中,Ruby-Mutations特别有用,因为Rails项目通常庞大且复杂,包含许多依赖关系和交互。通过确保测试的全面性,可以减少在后续开发或重构过程中引入的错误,从而提高整个团队的生产力和代码可维护性。 ...

    Ruby-Yard是一款Ruby文档工具

    在使用Yard的过程中,开发者可以利用其丰富的扩展库,如Yard-Stats用于统计文档覆盖率,Yard-Cucumber用于集成Cucumber测试,还有Yard-Graphviz用于生成类关系图等。这些扩展极大地增强了Yard的功能,使之成为一个...

    Ruby语言中文教程

    本教程的PDF版包含了详细的章节,从基础语法到高级特性,覆盖了Ruby的方方面面。页面设计清晰,目录详尽,便于读者按需查阅。无论是初学者还是有一定经验的开发者,都能从中受益,提升自己的Ruby技能。 总之,Ruby...

    ruby _1.9.3 _gem环境

    在描述中提到的“覆盖C:\Ruby193\lib\ruby\gems\1.9.1”,这是Ruby 1.9.3中Gem的默认安装路径。这个路径下的结构通常如下: - gems:存放已安装的Gem的目录,每个Gem都有自己的子目录。 - specifications:存储Gem的...

    ruby gem环境

    本文将深入探讨Ruby Gem环境的各个方面,包括其工作原理、安装过程以及与`C:\Ruby193\lib\ruby\gems\1.9.1`路径的关系。 首先,让我们理解Ruby Gem的工作原理。Gem的核心功能是通过gemspec文件,这是一个Ruby脚本,...

    Ruby-程序设计-cn.pdf

    Ruby中的类和对象关系紧密,支持继承和多态,使得代码复用和扩展变得简单。 ### 基本类型 Ruby提供了多种内置的数据类型,包括数组(Array)、哈希(Hash)、数字(Number)、字符串(String)、范围(Range)、...

    Metaprogramming.Ruby

    《Metaprogramming Ruby》一书覆盖了Ruby元编程的核心概念和技术,包括但不限于: 1. **Ruby对象模型**:深入讲解Ruby对象模型的基本原理,包括类、模块、继承关系等,为理解元编程奠定基础。 2. **动态方法定义**...

    Ruby-Xray一个能够显示你的UI骨架的开发工具

    当你在浏览器中打开一个网页时,Xray会显示一个覆盖在页面上的透明层,这个层上包含了页面所有元素的骨架。每个元素都有对应的HTML标签,边界清晰可见,同时还可以看到CSS属性、JavaScript绑定事件等关键信息。这...

    Ruby Quick Syntax Reference.pdf

    本书的内容按照Ruby语言的基本语法展开,覆盖了从基础概念到高级特性的广泛话题。由于书籍旨在提供快速参考,所以它避免了不必要的技术术语、冗长的示例、详细的历史讲解或幽默的故事,而是专注于提供简洁、精确且...

    ruby on rails在线考试系统

    2. 数据库集成:Rails默认使用ActiveRecord,这是一个ORM(对象关系映射)库,允许开发者用Ruby代码操作数据库,无需编写SQL。在这个在线考试系统中,数据库可能包含试题、答案、考生信息、考试记录等表。 3. ...

    Ruby 学习指南.rar

    - 函数与方法:Ruby中函数和方法是一体的,可以使用`def`定义,支持参数传递、默认参数、rest参数和block参数。 2. **面向对象编程** - 类与对象:Ruby是纯面向对象的语言,一切皆对象,通过`class`定义类,`new`...

    Ruby On Rails教程

    - **ActiveRecord:** Rails中的ORM(对象关系映射)工具,简化了数据库操作。它允许开发者以面向对象的方式处理数据库记录,无需编写复杂的SQL语句。 - **ActionPack:** 包括了Rails中的控制器和视图组件。...

    Programming Ruby The Pragmatic Programmer's Guide

    本章为读者提供了整个书籍的学习路径,帮助读者理解各章节之间的逻辑关系以及如何逐步深入学习Ruby。通过这一章,读者可以了解哪些概念是基础性的,哪些是进阶的,从而合理规划学习计划。 ##### 第2章:Ruby.new 本...

    why.s.poignant.guide.to.ruby.pdf en

    - **Bundler**:用于管理Ruby项目的依赖关系,确保项目可以在任何环境中正确运行。 #### 5. 社区与资源 - **社区参与**:Ruby拥有活跃的社区支持,包括各种论坛、邮件列表和用户组会议等,这些都是获取帮助和支持的...

    Design Patterns in Ruby Dec 2007.rar

    Ruby的类继承和方法覆盖可以实现这种模式。 这些设计模式在Ruby中的应用不仅限于上述描述,实际上,Ruby的灵活性和动态特性使得许多传统设计模式有了新的解释和实现方式。通过学习和实践这些模式,开发者可以更好地...

    Ruby 面向对象设计实践--2013年

    在Ruby中,多态可以通过方法重写来实现,即子类可以覆盖父类的方法,从而在不同的上下文中表现出不同的行为。 #### 三、设计原则与模式 《Ruby面向对象设计实践》不仅讲解了面向对象编程的基本概念和技术,还深入...

    ruby使用案例红宝石

    Ruby中的块是一段可以在函数内部定义的代码,可以使用`do..end`或花括号`{}`包裹。块可以与yield关键字配合,实现类似于回调的功能。闭包是能够记住其定义环境的块,即使在其他上下文中也能访问到那些变量。 4. **...

Global site tag (gtag.js) - Google Analytics