在 Ruby 中,与许多其他 OO 编程语言一样,运算符是可重载的。但是,只能重载某些字符运算符。
此列表可能不完整,但以下是一些不能重载的运算符:
!, not, &&, and, ||, or
在 Ruby 中,与许多其他 OO 编程语言一样,运算符是可重载的。但是,只能重载某些字符运算符。
此列表可能不完整,但以下是一些不能重载的运算符:
!, not, &&, and, ||, or
方法是可重载的,它们是语言语法的一部分。
是的。运算符不可重载。只有方法。
有些运营商不是真的。它们是方法的糖。5 + 5
确实如此5.+(5)
,而且foo[bar] = baz
确实如此foo.[]=(bar, baz)
。
在 Ruby 1.9 中,!
操作符实际上也是一种方法,可以被覆盖。这只留下&&
and||
和它们的低优先级对应物and
and or
。
还有一些其他“组合运算符”不能被覆盖,例如a != b
is 实际上!(a == b)
和a += b
is 实际上a = a+b
。
我们不要忘记<<
例如:
string = "test"
string << "ing"
与调用相同:
string.<<("ing")