数学の世界で + は演算子である。5歳の子供でもそれを知っている。そして私やあなたが老いて死にゆくまで、+ は演算子でありそこに疑念の入る余地はない。 プログラミングの世界でもふつう + は演算子である。CでもJavaでもPerlでも + は演算子であり、それ以上でもそれ以下でもない。 ところが驚くべきことに、Rubyの世界では + は演算子ではないのである。 嘘だと思うなら、エディタを立ち上げて1、次のようにしてみるといい。 class Fixnum def +(other) Integer("#{self}"+"#{other}") end end 1 + 2 # => 12 123 + 456 # => 123456 あなたは今、Fixnum#+ メソッドを再定義した。そうしたら1 + 2は12という答えを返した。そう、Rubyの世界で + は演算子ではなく、ユーザが再定義可能なひと