Ruby の演算子はメソッド
Ruby では +
や -
、&
、|
といった二項演算子などはメソッド呼び出しになる。
例えば、
a + b
という式は
a.+(b)
というメソッド呼び出しのシンタックスシュガーになる。
また、これらの演算子(メソッド)はユーザ側で再定義することができるので、任意のクラスで演算子を定義することができる。
class X def initialize value = 0 @value = value end # 再定義したい演算子をメソッド名にする def + value @value + value end # 比較演算子も定義できる def == value @value == value end end x = X.new 4 x + 3 # => 7 x == 4 # => true
再定義する事ができる演算子は以下の通りになる。
| ^ & <=> == === =~ > >= < <= << >> + - * / % ** ~ +@ -@ [] []= ` ! != !~
[参照]
http://docs.ruby-lang.org/ja/2.1.0/doc/spec=2foperator.html