灵感来自我如何用数组编组哈希?我想知道Array#<<在以下代码中无法正常工作的原因是什么:
h = Hash.new{Array.new}
#=> {}
h[0]
#=> []
h[0] << 'a'
#=> ["a"]
h[0]
#=> [] # why?!
h[0] += ['a']
#=> ["a"]
h[0]
#=> ["a"] # as expected
Run Code Online (Sandbox Code Playgroud)
它是否与<<在就地更改数组的事实有关,同时Array#+创建了一个新实例?
我有一个带有默认proc的哈希,我想将Marshal设置为一个文件,但默认的proc会阻止我这样做.
而不是写我自己_dump和_load方法,是有可能,而不是删除默认PROC呢?在我编组时,我永远不会再需要默认的proc.