Ruby Language Création automatique d'un hachage profond


Exemple

Hash a une valeur par défaut pour les clés qui sont demandées mais qui n'existent pas (nil):

a = {}
p a[ :b ] # => nil 

Lors de la création d'un nouveau Hash, vous pouvez spécifier la valeur par défaut:

b = Hash.new 'puppy'
p b[ :b ]            # => 'puppy'

Hash.new prend également un bloc, ce qui vous permet de créer automatiquement des hachages imbriqués, tels que le comportement d'autovivification de Perl ou mkdir -p :

# h is the hash you're creating, and k the key.
#
hash = Hash.new { |h, k| h[k] = Hash.new &h.default_proc }
hash[ :a ][ :b ][ :c ] = 3

p hash # => { a: { b: { c: 3 } } }