首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

关于ruby中<=>运算符的疑义

2013-01-05 
关于ruby中运算符的疑问在看《Ruby从入门到精通》这本书的过程中,讲到 运算符,需要进行比较时出现了一

关于ruby中<=>运算符的疑问
在看《Ruby从入门到精通》这本书的过程中,讲到 <=>运算符,需要进行比较时出现了一点问题
代码如下:
class Song
   include Comparable

   attr_accessor :length
   def <=>(other)
       @length <=> other.length

   end

   def initialize(song_name, length)
       @song_name = song_name
       @length = length
   end
end

不知道为什么莫名其妙多出来一个other,而且为什么可以这样用?
这样不是相当于多了一个实例?
[解决办法]
另纠正3楼一下

<=>方法返回-1,0,1这三种结果
不是返回一个长度结果值
一般用在比较对象大小(逻辑上的),或者用在sort collection功能里
[解决办法]
原本是比较对象, 但方法重写了。  

结果取决方法返回值, other.length方法返回的值是什么, 比较出来就是什么。

热点排行