Хорошо, поэтому я хотел создать хэш, который имеет пустой хеш в качестве значения по умолчанию. Немного странно, я знаю, но позвольте сказать, что я думал, что это может быть полезно.
Итак, вот что я сделал:
>> a = Hash.new({})
=> {}
>> a[:a][:b] = 5
=> 5
>> a
=> {}
>> a[:a]
=> {:b=>5}
>> a.keys
=> []
>> a.size
=> 0
>> a[:a].size
=> 1
Другими словами, я не вижу хэш-элемент, когда проверяю хэш, но я могу получить к нему доступ по его ключу.
Является ли это ожидаемым поведением? Что здесь происходит?
Кстати, это Ruby 1.9.1, не пробовал более ранние версии.
Изменить: упрощенный пример, поскольку он не должен быть хешем хэшей хэшей...