8

Ruby では、他の多くの OO プログラミング言語と同様に、演算子はオーバーロード可能です。ただし、オーバーロードできるのは特定の文字演算子のみです。

このリストは不完全かもしれませんが、オーバーロードできない演算子の一部を次に示します。

!, not, &&, and, ||, or
4

5 に答える 5

12

うん。演算子はオーバーロードできません。メソッドのみ。

一部の演算子は実際にはそうではありません。彼らは方法のための砂糖です。だから5 + 5本当に5.+(5)、そしてfoo[bar] = baz本当にfoo.[]=(bar, baz)です。

于 2008-09-18T14:16:58.383 に答える
12

メソッドはオーバーロード可能で、言語構文の一部です。

于 2008-09-18T14:14:12.353 に答える
6

Ruby 1.9では、!演算子は実際にはメソッドでもあり、オーバーライドできます。これは&&、と||とその優先順位の低い対応物andとを残すだけorです。

オーバーライドできない他の「結合演算子」もいくつかあります。たとえばa != b、実際にはであり、実際には!(a == b)です。a += ba = a+b

于 2008-09-20T20:53:26.860 に答える
1

<<たとえば、次のことを忘れないでください。

string = "test"
string << "ing"

次の呼び出しと同じです。

string.<<("ing")
于 2008-09-19T00:11:42.683 に答える