什么< =>方法呢?

时间:2013-05-17 09:43:32

标签: ruby

我想知道ruby方法中def <=>(other)的含义是什么。我想知道ruby方法中的<=>是什么。

3 个答案:

答案 0 :(得分:2)

<=>不是&#34;在#34; Ruby方法,#<=>是一个Ruby方法。此方法用于可比对象(有序集的成员),通过包含#< mixin,轻松获得#>#==Comparable等方法的实现。

class GradeInFiveLevelScale
  include Comparable
  attr_reader :grade
  def initialize grade; @grade = grade end
  def <=> other; other.grade <=> grade end
  def to_s; grade.to_s end
end

a = GradeInFiveLevelScale.new 1
b = GradeInFiveLevelScale.new 1
c = GradeInFiveLevelScale.new 3

a > b #=> false
a >= b #=> true
a > c #=> true

答案 1 :(得分:2)

&LT; =&GT;是组合比较运算符。如果第一个操作数等于秒,则返回0;如果第一个操作数大于第二个,则返回1;如果第一个操作数小于第二个,则返回-1。

有关此SO thread的更多信息。

答案 2 :(得分:2)

阅读此Equality, Comparison and Uniqueness in Ruby。好的博客是。