`
darkhucx
  • 浏览: 23010 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

初学Ruby对ruby中的<=>符号有些疑惑

阅读更多
初学ruby
在看到ruby的<=>这个运算符的调用上有些疑惑,希望各位能解答一下
class Person
  def initialize(name,age)
    @name = name
    @age = age
  end
  def <=>(other)
    self.age <=> other.age
  end
end
test1 = Person.new("test1", 20)

test2 = Person.new("test2", 18)

test1.<=>(test2)

上面的<=>应该是定义的方法名吧,我理解的other这个参数是Person类的另一个实例化对象吧
但是我自己定义了两个实例化对象test1和test2
调用test1的<=>方法并把test2这个实例化对象传进去,为什么程序总报<=>:undefine method 'age'
for #.......这个错误呢?
刚开始学,可能很多是概念上的错误,希望能帮我解答一下,谢谢
分享到:
评论
3 楼 darkhucx 2007-03-06  
谢谢透明,呵呵,解决了,哦 明白了,ruby方法中的变量在类外部是无法直接访问的,设置age属性为只读,其实是调用Module模块的方法来实现在类外访问,呵呵,谢谢楼上两位,尤其是透明!
2 楼 刑天战士 2007-03-06  
all instant field in ruby is not visible for others but itself, you should define a method whose name is the same as the field name.
1 楼 gigix 2007-03-06  
attr_reader :age

相关推荐

    HTML讲解·

    `&lt;ruby&gt;`和`&lt;rt&gt;`用于标注文字的读音或注释。 - 地址文字:`&lt;address&gt;`用于显示地址信息,通常文本自动转换为斜体且默认为左对齐。 - 等宽文字:`&lt;tt&gt;`、`&lt;code&gt;`、`&lt;samp&gt;`、`&lt;kbd&gt;`分别表示打字机风格、代码块、...

    ruby初学者教程(对初学者很有帮助)

    hash = {"name" =&gt; "Alice", "age" =&gt; 30} ``` **4.3 Number** 数字包括整数和浮点数。 ```ruby num = 123 ``` **4.4 String** 字符串是一系列字符的有序集合。 ```ruby str = "Hello, World!" ``` **4.5 ...

    Ruby On Rails-Cheatsheet

    - `find(:all, :conditions =&gt; "date_available &lt;= now()", :order =&gt; "date_available desc")`: 查询所有符合条件的记录,并按 `date_available` 字段降序排列。 #### 模型间的关系 - **`belongs_to` 关系** - ...

    Ruby语言中文教程

    对象通过new方法创建,继承用&lt;=&gt;符号表示。 二、Ruby元编程 1. 动态性:Ruby允许在运行时修改代码,如动态添加方法、改变类的属性等,这得益于它的元编程特性。 2. eval:eval函数可以将字符串作为Ruby代码执行,...

    ruby trap 初学者使用

    Ruby是一种强大的、面向对象的编程语言,以其简洁的语法和灵活的编程理念而...通过阅读"Ruby Trap"电子书,初学者可以对这些潜在的问题有更深入的理解,并学会如何在实际编程中避免这些陷阱,从而更好地掌握Ruby编程。

    ruby中英文api

    "ruby中英文api"资料集可能包含了对这些内容的解释,无论是对于初学者还是有经验的开发者,都是宝贵的参考资料。 "ruby中文文档.chm"可能是Ruby的中文版官方文档,这对于中文环境下的学习者来说非常方便。它可能...

    ruby中文文档 初学者入门

    1. **基础语法**:Ruby的基础语法包括变量(局部变量、实例变量、类变量和全局变量)、常量、符号、字符串、数字以及条件语句(如if、unless、case)和循环(如for、while、until)。 2. **面向对象**:Ruby是一种...

    Ruby新手学习书(Ruby语言中文教程)和Rails_4_days

    通过这些资源,初学者可以在短时间内建立起对Ruby语言和Rails框架的基本理解,并逐步进阶到更复杂的开发任务。记得理论学习与实践相结合,不断编写代码和调试,是提升技能的最好方式。祝你在Ruby的世界里探索愉快!

    ruby学习笔记

    使用 `==` 和 `&lt;=&gt;` 来比较字符串的相等性和顺序关系。 以上知识点覆盖了Ruby编程语言的基础和进阶内容,非常适合初学者掌握Ruby的基本语法和特性。通过理解这些概念,可以帮助开发者更高效地编写Ruby程序。

    Ruby基础教程(中文第4版)

    《Ruby基础教程(中文第4版)》是一本详尽介绍Ruby编程语言的权威指南,专为初学者和有一定编程经验的开发者设计。这本非扫描版的电子书以其清晰的排版和易于理解的内容,提供了学习Ruby 2.0版本的完美起点。Ruby是一...

    Ruby语言中文教程.rar

    本教程针对初学者设计,旨在帮助读者快速掌握Ruby的基础知识,并通过实例深入理解其核心概念。 首先,Ruby的基础语法是学习的重点。Ruby语言允许程序员以一种自然、接近英语的方式来编写代码,使得代码更易读、易写...

    Ruby 教程 The Book of Ruby

    本书面向希望学习Ruby语言的初学者以及已经有一定编程基础但想深入了解Ruby特性的开发者。 - **风格**:本书采用实战导向的方式进行讲解,旨在通过实践让读者掌握Ruby的核心概念和技术。 - **目标读者**:适合对Ruby...

    Ruby on Rails中文指南

    7. **哈希与符号化键(Hashes and Symbolized Keys)**:在Rails中,使用符号作为哈希键可以提高性能,因为符号是不可变的,且在内存中只存储一次。 8. **部分视图(Partials)**:部分视图是可重用的视图代码块,...

    Best of Ruby Quiz

    《Best of Ruby Quiz》是一本聚焦于Ruby编程语言的精选问答集锦,旨在帮助开发者深入理解和掌握Ruby的各种特性。这本书的描述简洁明了,"Best of Ruby Quiz"直接点出了其核心内容——一系列关于Ruby的精彩挑战和问题...

    Ruby语言入门教程

    子类通过`&lt;`符号指向父类,如`class Child &lt; Parent`。 Ruby还支持模块(Module),它是组织代码的一种方式,可以包含常量、类方法和实例方法。模块可以被混入(include)到类中,实现代码的复用。这对于创建类之间...

    ruby官方chm文档

    Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力...通过仔细阅读和实践,无论是初学者还是经验丰富的开发者,都能加深对Ruby的理解,提升编程技能,更好地利用Ruby来解决实际问题。

    ruby初学笔记ruby初学笔记

    6. **符号(Symbols)**:在Ruby中,符号是不可变的对象,常用于哈希键,因为它们在内存中只保存一份,提高了效率。 7. **模块(Modules)**:模块用于实现代码复用和封装,可以包含方法、常量和类定义。通过`...

Global site tag (gtag.js) - Google Analytics