Я хотел использовать значения хэш-значения по умолчанию Ruby, чтобы я мог легче хешировать гнезда без необходимости их инициализации вручную. Я подумал, что было бы неплохо иметь возможность выровнять уровень для каждого ключа безопасно, не предварительно задав ключ как хэш. Тем не менее, я нахожу, что когда я это делаю, данные где-то хранятся, но не видны путем доступа к хэшу верхнего уровня. Куда он идет, и как это работает?Значение по умолчанию для хэша Ruby: куда идут вложенные значения?
top = Hash.new({}) #=> {}
top[:first][:thing] = "hello" #=> "hello"
top[:second] = {thing: "world"} #=> {:thing => "world"}
top #=> {:second => {:thing => "world"}}
top[:first] #=> {:thing => "hello"}
Пожалуйста, удалите подсказки. Они затрудняют чтение и предотвращают простое копирование и вставку читателей. –