From: Mitsuhiro Kondo Date: 2000-08-11T12:26:47+09:00 Subject: [ruby-list:24165] Re: Hash の初期値に [] を使う > > h = Hash.new([]) > > h["a"] = [] # 明示的な初期化 > > まず、Hash.new の引数はキーが存在しないときに返されるデフォルト値であ > って、初期値ではありません。 > > > h["a"] << 5 > > h["b"] << 5 # 暗黙の初期化 > > ここで行っているのは暗黙の初期化ではなく、デフォルト値である [] への追 > 加です。Ruby では Hash の要素にアクセスしただけで自動的に新しい要素がで > きることはありません。 そう解釈されるんですか。 よくわかりました。 > # Perl だとできるんだっけ? こんな感じでできます。 push @{$h{1}}, "1"; print keys %h, "\n"; print join(", ", @{$h{1}}), "\n"; ありがとうございました。 --- 近藤充弘