Array.new
第一引数に要素の数を指定できる。第二引数にオブジェクトを指定すると、そのオブジェクトが第一引数の数格納された配列を返す。この場合、配列の全部の要素が同じオブジェクトを指すので、別々にしたい場合はブロックを使う。
a = Array.new(2, {}) #=> [{}, {}] a[0]["hoge"] = "fuga" a #=> [{"hoge"=>"fuga"}, {"hoge"=>"fuga"}] b = Array.new(2) { {} } #=> [{}, {}] b[0]["hoge"] = "fuga" b #=> [{"hoge"=>"fuga"}, {}]
ブロックの引数にはインデックスが入る
Array.new(5) { |i| i*i} #=> [0, 1, 4, 9, 16]
配列を引数に入れると、コピーした配列を返す。
a = [1, 2] b = Array.new(a) #=> [1, 2] a[2] = 3 a #=> [1, 2, 3] b #=> [1, 2]
参考
プログラミングRuby 第2版 ライブラリ編
posted with amazlet at 11.01.15