Pythondefines使用方法__radd____rsub__等的左右运算符。
鲁比有类似的东西吗?

class N32
  def +( other )
    2
  end
end
a = N32.new
a + 3 # return 2
3 + a # return error N32 can't be coerced into Fixnum

最佳答案

类需要一个coerce方法才能工作:

class N32

  def +( other )
    2
  end

  def coerce(other)
    [self, other]
  end

end

a = N32.new
a + 3 # return 2
3 + a # return 2

10-08 04:26