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 "!~".