Arrayの初期化
こうすると
#!/usr/bin/env ruby require 'rubygems' require 'pp' arr = Array.new(10, Hash.new) i=0 arr.each{|h| h["num"] = i h["test"] = "test" if i == 5 i+=1 } pp arr
同じHashが全要素に入るのでこうなる
[{"num"=>9, "test"=>"test"}, {"num"=>9, "test"=>"test"}, {"num"=>9, "test"=>"test"}, {"num"=>9, "test"=>"test"}, {"num"=>9, "test"=>"test"}, {"num"=>9, "test"=>"test"}, {"num"=>9, "test"=>"test"}, {"num"=>9, "test"=>"test"}, {"num"=>9, "test"=>"test"}, {"num"=>9, "test"=>"test"}]
こうするんだった
#!/usr/bin/env ruby require 'rubygems' require 'pp' #arr = Array.new(10, Hash.new) arr = Array.new 10.times do arr << Hash.new end i=0 arr.each{|h| h["num"] = i h["test"] = "test" if i == 5 i+=1 } pp arr
ok
[{"num"=>0}, {"num"=>1}, {"num"=>2}, {"num"=>3}, {"num"=>4}, {"num"=>5, "test"=>"test"}, {"num"=>6}, {"num"=>7}, {"num"=>8}, {"num"=>9}]