Ruby の演算子

Ruby演算子としては以下のものがある。ただしほとんどはメソッド。

|  ^  &  <=>  ==  ===  =~  >   >=  <   <=   <<  >>
+  -  *  /    %   **   ~   +@  -@  []  []=  

これらのうち以下のものは組み込みで再定義できない。つまりメソッドじゃない。また自己代入演算子と !=, !~ も再定義できない。

=  ?:  ..  ...  !  not  &&  and  ||  or  ::

と、ここまでは 1.8 までの話。

今日の ruby-dev を見てると、「!」が再定義可能になったらしい。ささださんはびっくりしてたけど。

* parse.y (expr): redefinable not (!) operator.

* parse.y (arg): ditto.

* object.c (rb_obj_not): new method "!".

* object.c (rb_obj_not_equal): new method "!=".

* object.c (rb_obj_not_match): new method "!~".

ruby-dev:32498 - Re: ruby-cvs:21399 Ruby:r14162 (trunk): * parse.y (expr): redefinable not (!) operator.