From: Takao KAWAMURA Date: 2000-12-16T22:32:44+09:00 Subject: [ruby-list:26554] Hash.new Hash.newの挙動について、理解できないことがありましたので、教 えてください。 h = {} h[0] = [] h[0] << 0 h[0] << 1 p h # <= {0=>[0, 1]} と同じことをやろうとして、 h = Hash.new([]) h[0] << 0 h[0] << 1 p h # <= {} どうして? とすると、なぜはhは空っぽのまま。試みに h = Hash.new([]) h[0] += [0] h[0] += [1] p h # <= {0=>[0, 1]} 期待通り とすると、期待通りの結果になりました。 Arrayはどうだろうと思って a = Array.new(1,[]) a[0] << 0 a[0] << 1 p a # <= [[0, 1]] 期待通り を試すと、これも期待通り。 2番目のコードがどうしてああいう結果になるのか教えてください。 ちなみに、使用したRubyはDebian GNU/Linux(woody)のバイナリパッ ケージ版で、 | ruby 1.6.2 (2000-11-27) [i486-linux] です。 -- 川村 尚生