Ruby 重载 + 运算符

Ruby overload + operator

在 ruby 中重载运算符的正确方法是什么? 我需要做什么来重新定义 + 的工作原理? 使用 + 运算符时不会调用此函数。

def +(a,b)
 return a * b
end

p 2 + 2 

重载运算符是根据第一个操作数的 class 解析的,所以如果你想重载简单整数的加法,类似的东西应该可以工作:

class Fixnum
  def +(other)
    return self * other
  end
end

顺便说一句,我不建议你实际这样做。