Skip to main content
Post Made Community Wiki
Source Link
Trevoke
  • 4.1k
  • 1
  • 29
  • 51

Auto-vivifying hashes in Ruby

def cnh # silly name "create nested hash"
  Hash.new {|h,k| h[k] = Hash.new(&h.default_proc)}
end
my_hash = cnh
my_hash[1][2][3] = 4
my_hash # => { 1 => { 2 => { 3 =>4 } } }

This can just be damn handy.