読者です 読者をやめる 読者になる 読者になる

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