La creazione di hash di hash in Ruby consente di ottenere due (o più) oculari dimensionale. Tuttavia, quando si inserisce uno deve sempre verificare se il primo indice esiste già nell'hash. Ad esempio:Hash of Hashes Idiom in Ruby?
h = Hash.new
h['x'] = Hash.new if not h.key?('x')
h['x']['y'] = value_to_insert
Sarebbe preferibile effettuare le seguenti operazioni in cui il nuovo hash viene creato automaticamente:
h = Hash.new
h['x']['y'] = value_to_insert
Analogamente, quando si cerca un valore in cui il primo indice non esiste, sarebbe preferibile restituire nil anziché ricevere un metodo non definito per l'errore '[]'.
looked_up_value = h['w']['z']
Si potrebbe creare una classe wrapper Hash che ha questo comportamento, ma c'è un esistente un idioma rubino per realizzare questo compito?
C'è un hash di idiomi hash che restituiscono 0 dopo una certa profondità? (Sto contando le cose e sto usando h [: foo] [: bar] [: baz] + = 1) –