F
Farhad Farzaneh
Try this:
Huh? It seems that when I index a hash with a new key, it returns the
Hash's default value object, not a copy of it. So if you modify that,
it modifies the default value, which then effects the default value for
every other new key.
I don't know, I wouldn't call this the "principle of least surprise"...
I was plenty surprised!
=> ["this"]x = Hash.new([]) => {}
x[:test] => []
x[:test] << 'this' => ["this"]
x[:bar]
Huh? It seems that when I index a hash with a new key, it returns the
Hash's default value object, not a copy of it. So if you modify that,
it modifies the default value, which then effects the default value for
every other new key.
I don't know, I wouldn't call this the "principle of least surprise"...
I was plenty surprised!