他のプログラミング言語の演算子のほとんどは、Rubyの単なるメソッドです。
+
演算子ではなくメソッドです。あなたはそれへの参照を得ることができます:
1.method(:+)
#=> #<Method: Fixnum#+>
"".method(:+)
#=> #<Method: String#+>
Fixnum
とString
は、メソッドを実装する多くのクラスの1+
つです。独自の演算子のようなメソッドを定義できます。
class MyClass
attr_accessor :number, :string
def +(other)
self.number += other.number
self.string += other.string
self
end
end
Rubyの真の演算子の例では、これらの「名前」のいくつかを使用して独自のメソッドを定義することはできません。
- 代入演算子:
=
- アクションと割り当て:、、、、、、
+=
_-=
*=
/=
%=
**=
- ビット演算子:、、、、、、
&
_|
^
~
<<
>>
- 論理演算子:、、、、、、
and
_ or
_&&
||
!
not
- 三項演算子:
? :
- 範囲演算子:
..
、...
- ドットとダブルコロン:
.
、::
特別な演算子もありますdefined?
。実際にはメソッドのように見えますが、演算子です。defined?
ただし、独自のメソッドを定義することはできます。