如何在Fixnum和自定义类之间进行比较?

时间:2013-09-20 09:13:54

标签: ruby comparison operators

我已经使用强制来处理算术运算符:

class MyCustomClass

  def coerce( other )
    [MyCustomClass.new(other), self]
  end

end

这意味着我可以做到:

42 + MyCustomClass.new

我想知道是否存在类似的机制,这样我就可以进行比较(没有猴子修补Fixnum):

42 > MyCustomClass.new

1 个答案:

答案 0 :(得分:1)

您只需要包含Comparable并定义<=>运算符:

class MyCustomClass
  include Comparable

  # ...

  def <=>(other)
    # e.g. compare self to fixnum and return -1, 0, 1
  end
end