From: Mitch Tishmack Date: 2005-08-29T14:06:07+09:00 Subject: Re: Hash.new(confusion) r is independent of r[:b]. r[:b] is a hash with a value containing another hash/key value. ie {:b => {:c => 10}} NOT {:b => 10, :c = 10}. If I understand your confusion correctly. irb(main):001:0> def r irb(main):002:1> @r ||= Hash.new({}) irb(main):003:1> end => nil irb(main):004:0> r[:a] => {} irb(main):005:0> r.empty? => true irb(main):006:0> r[:a] = 1 => 1 irb(main):007:0> r.empty? => false irb(main):008:0> r[:b][:c] = 10 => 10 irb(main):009:0> r => {:a=>1} irb(main):010:0> r[:b] => {:c=>10} irb(main):011:0> (r[:b])[:c] => 10 irb(main):012:0> r[:a] => 1 irb(main):013:0> r.size => 1 irb(main):014:0> r[:b].size => 1 irb(main):015:0> r[:b][:d] = 300000 => 300000 irb(main):016:0> r[:b].size => 2 irb(main):018:0> r => {:a=>1} irb(main):019:0> r[:b] => {:d=>300000, :c=>10} Or did I completely miss your point? Mitch On Aug 28, 2005, at 11:16 PM, Trans wrote: > irb(main):006:0> def r > irb(main):007:1> @r ||= Hash.new({}) > irb(main):008:1> end > => nil > irb(main):009:0> r[:a] > => {} > irb(main):010:0> r[:b][:c] = 10 > => 10 > irb(main):011:0> r > => {} > irb(main):012:0> r[:b] > => {:c=>10} > irb(main):013:0> > > Please explain how r is empty but r[:b] exists. Thank You. > > T. > > >