Я получаю довольно неожиданное поведение от хэшей в ruby
Вот упрощенная демонстрация проблемы
estdata = ["a","b","c"]
outputHash = Hash.new({:IDs => [], :count => 0})
estdata.each do |x|
outputHash[x][:IDs] << x
outputHash[x][:count] +=1
end
p outputHash # => {}
p outputHash["a"] # => {:count=>3, :IDs=>["a", "b", "c"]}
Итак, во-первых, почему первый p выводит пустой хеш, когдаясно, что outputHash не пустой?
И, во-вторых, и еще больше, к моему разочарованию и замешательству, почему кажется, что каждый ключ имеет указатель на одно значение (хеш, содержащий ключи: count и: IDs)) и как бы мне обойти это?