【发布时间】:2013-09-23 17:09:37
【问题描述】:
class Fixnum
alias :old_plus :+
def +(value)
puts "self is:#{self}"
self.old_plus(value)
end
end
如果你打开 irb 并像上面那样做一个猴子补丁,那么每次你回车时,它都会打印一些随机数,比如:
2.0.0p195 :019 >
self is:18
self is:116
self is:19
self is:17
self is:0
这对我来说很奇怪,因为只有 Fixnum 对象可以调用函数 :+。有人知道为什么会这样吗?
提前致谢。
【问题讨论】:
-
在你的
+方法中调用raise,你会得到一个很好的回溯。