1
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 オブジェクトだけが関数 :+ を呼び出すことができるので、私にとっては奇妙です。なぜこれが起こっているのか誰にも分かりますか?

前もって感謝します。

4

1 に答える 1