Вдохновленный Как я могу маршировать хэш с массивами? Интересно, какая причина, по которой Array#<<
не будет работать должным образом в следующем коде:
h = Hash.new{Array.new}
#=> {}
h[0]
#=> []
h[0] << 'a'
#=> ["a"]
h[0]
#=> [] # why?!
h[0] += ['a']
#=> ["a"]
h[0]
#=> ["a"] # as expected
Это связано с тем, что <<
изменяет массив на месте, а Array#+
создает новый экземпляр?