class Fixnum
alias :old_plus :+
def +(value)
puts "self is:#{self}"
self.old_plus(value)
end
end
irb を開いて上記のようにモンキー パッチを実行すると、Enter キーを押すたびに次のような乱数が出力されます。
2.0.0p195 :019 >
self is:18
self is:116
self is:19
self is:17
self is:0
Fixnum オブジェクトだけが関数 :+ を呼び出すことができるので、私にとっては奇妙です。なぜこれが起こっているのか誰にも分かりますか?
前もって感謝します。