From: Mitsuhiro Kondo Date: 2000-08-11T12:10:03+09:00 Subject: [ruby-list:24161] Re: Hash の初期値に [] を使う > h = Hash.new([]) > h["a"] = [] # 明示的な初期化 > > h["a"] << 5 > h["b"] << 5 # 暗黙の初期化 > > この二つが一緒であってほしいのです。 > > ここで p h とすると > > {"a"=>[5]} > > となります。 > > {"a"=>[5], "b"=>[5]} > > とはならないのでしょうか? もうちょっと調べてみました。 h = Hash.new([]) h["a"] = [] h["a"] << 1 h["b"] << 1 とすると、これ以降 h[a以外の(たぶん)すべて]の値が [1]になってしまいました。 h["b"] << 1 が h.default = [1] と扱われているような感じです。 --- 近藤充弘