在 Ruby 中,与许多其他 OO 编程语言一样,运算符是可重载的。但是,只有某些字符运算符可以重载。

此列表可能不完整,但以下是一些不能重载的运算符:

!, not, &&, and, ||, or
有帮助吗?

解决方案

方法是可重载的,它们是语言语法的一部分。

其他提示

是的。运算符不可重载。只有方法。

有些运营商实际上并非如此。它们是方法的糖。所以 5 + 5 是真的 5.+(5), , 和 foo[bar] = baz 是真的 foo.[]=(bar, baz).

在 Ruby 1.9 中, ! 运算符实际上也是一个方法并且可以被重写。这只剩下 &&|| 及其低优先级对应项 andor.

还有一些其他无法覆盖的“组合运算符”,例如 a != b 实际上是 !(a == b)a += b 实际上是 a = a+b.

我们不要忘记 << 例如:

string = "test"
string << "ing"

与调用相同:

string.<<("ing")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top