間違え:
a=Hash::new() a.default=Hash::new() a["1"]["3"]=5 puts a["2"]["3"]
5が表示される.おそらく参照がおかしくなる.
正解(きちんと初期化 Hash.new.each{...} は...がデフォルト処理):
a=Hash.new.each{|hash,key| hash[key]=Hash.new(0)} a["1"]["3"]=5 puts a["1"]["3"] puts a["2"]["3"]
間違え:
a=Hash::new() a.default=Hash::new() a["1"]["3"]=5 puts a["2"]["3"]
5が表示される.おそらく参照がおかしくなる.
正解(きちんと初期化 Hash.new.each{...} は...がデフォルト処理):
a=Hash.new.each{|hash,key| hash[key]=Hash.new(0)} a["1"]["3"]=5 puts a["1"]["3"] puts a["2"]["3"]