我是monkeypatching 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
方法被调用。为什么会这样?
答案 0 :(得分:0)
因为文字哈希不会调用initialize
将调用的Hash.new
方法。
与Hash['a', 'b']
或Hash['a' => 'b']