Crear hashes de hashes en Ruby permite realizar dos (o más) búsquedas dimensionales convenientes. Sin embargo, al insertar uno siempre se debe verificar si el primer índice ya existe en el hash. Por ejemplo:Hashes of Hashes Idiom en Ruby?
h = Hash.new
h['x'] = Hash.new if not h.key?('x')
h['x']['y'] = value_to_insert
Sería preferible hacer lo siguiente, donde el nuevo hash se crea automáticamente:
h = Hash.new
h['x']['y'] = value_to_insert
Del mismo modo, cuando se busca un valor en el que no existe ya el primer índice, sería preferible si se devuelve nil en lugar de recibir un método indefinido para el error '[]'.
looked_up_value = h['w']['z']
Se podría crear una clase contenedora hash que tiene este comportamiento, pero ¿hay una ya existente un lenguaje de Ruby para llevar a cabo esta tarea?
¿Hay un hash de modismos hash que devolverían 0 después de cierta profundidad? (Estoy contando cosas y estoy usando h [: foo] [: bar] [: baz] + = 1) –