我正在修补 Ruby 的 Hash
类。
class Hash
alias_method :_initialize, :initialize
def initialize
puts 'In my hash class'
_initialize
end
end
当我这样做
Hash.new
它按预期工作。但是假设我有一个接受Hash
的函数。类似的东西,
foo 'a' => 'b'
在这种情况下,我的 Hash
类没有被使用。我希望我的 Hash
类的 initialize
方法被调用。为什么会这样?
最佳答案
因为文字哈希不会调用 Hash.new
将调用的 initialize
方法。
与 Hash['a', 'b']
或 Hash['a' => 'b']
相同
关于ruby - 为什么 monkeypatching Hash.new 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15515370/