Ok, así que quería crear un hash que tenga un hash vacío como valor predeterminado. Un poco raro, lo sé, pero digamos que pensé que podría ser útil.¿Por qué Hash.new ({}) oculta los miembros hash?
Así que aquí es lo que hice:
>> a = Hash.new({})
=> {}
>> a[:a][:b] = 5
=> 5
>> a
=> {}
>> a[:a]
=> {:b=>5}
>> a.keys
=> []
>> a.size
=> 0
>> a[:a].size
=> 1
En otras palabras, no veo miembro de hash cuando inspecciono el hash, pero no puedo acceder a él mediante su clave.
¿Este comportamiento es esperado? ¿Que esta pasando aqui?
Por cierto, esto es Ruby 1.9.1, no he probado versiones anteriores.
Editar: simplificado ejemplo, ya que no tiene por qué ser un hash de hashes de hashes ...
Reproducible en 1.8.7 también. –