为什么monkeypatching Hash.new不起作用?

时间:2013-03-20 04:31:09

标签: ruby hash monkeypatching

我是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方法被调用。为什么会这样?

1 个答案:

答案 0 :(得分:0)

因为文字哈希不会调用initialize将调用的Hash.new方法。

Hash['a', 'b']Hash['a' => 'b']

相同