Предположим, что у меня есть:Хэши в хэши, которые производят по умолчанию массив
a = Hash.new
a['google.com'][:traffic] << 50
a['google.com'][:traffic] << 20
a['google.com'][:popular] << 1
a['google.com'][:popular] << 2
3a['yahoo.com'][:anythinghere] << 3
нужно производить что-то вроде этого:
a = { 'google.com' => {traffic: [50,20], popular: [1,2]}, 'yahoo.com' => { anythinghere: [3,4] } }
До сих пор я пытался что-то такого рода в надежде, что она будет произвести этот результат:
a= Hash.new(Hash.new(Array.new))
Например, a['google.com']
будет производить новый хэш то время как a['google.com'][:anythinghere]
создаст новый массив. Однако, когда я пытаюсь выполнить указанные выше вставки, a
пуст? Не знаю, что происходит, я почти уверен, что у меня нет чего-то фундаментального. Посмотрите:
a = stats = Hash.new(Hash.new(Array.new))
a['google.com'][:traffic] << 5
a['google.com'][:traffic] << 6
p a['google.com'][:traffic] #=> [5,6]
p a['google.com'] #=> empty hash???
p a #=> empty hash???
Мне нравятся ответы, после которых вы можете пойти и получить решение самостоятельно. Благодарю. – daremkd