Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Arrayクラス > []=
self[nth] = val
[permalink][rdoc]nth 番目の要素を val に設定します。nth が配列の範囲を越える時には配列の長さを自動的に拡張し、 拡張した領域を nil で初期化します。
例:
a = [0, 1, 2, 3, 4, 5] a[0] = "a" p a #=> ["a", 1, 2, 3, 4, 5] a[10] = "x" p a #=> ["a", 1, 2, 3, 4, 5, nil, nil, nil, nil, "x"] a = [0, 1, 2, 3, 4, 5] a[-100] = 1 #=> IndexError
self[range] = val
[permalink][rdoc]Range オブジェクト range の範囲にある要素を配列 val の内容に置換します。 range の first が自身の末尾を越える時には配列の長さを自動的に拡張し、拡張した領域を nil で初期化します。
ary = [0, 1, 2, 3, 4, 5] ary[0..2] = ["a", "b"] p ary # => ["a", "b", 3, 4, 5] ary = [0, 1, 2] ary[5..6] = "x" p ary # => [0, 1, 2, nil, nil, "x"] ary = [0, 1, 2, 3, 4, 5] ary[1..3] = "x" p ary # => [0, "x", 4, 5]
ary = [0, 1, 2, 3, 4, 5] ary[2..0] = ["a", "b", "c"] p ary # => [0, 1, "a", "b", "c", 2, 3, 4, 5]
ary = [0, 1, 2, 3, 4, 5] ary[2..4] = [] p ary # => [0, 1, 5]
例:
a = [0, 1, 2, 3, 4, 5] a[-10..10] = 1 #=> RangeError
self[start, length] = val
[permalink][rdoc]インデックス start から length 個の要素を配列 val の内容で置き換えます。 start が自身の末尾を越える時には配列の長さを自動的に拡張し、拡張した領域を nil で初期化します。
ary = [0, 1, 2, 3] ary[1, 2] = ["a", "b", "c", "d"] p ary #=> [0, "a", "b", "c", "d", 3] ary = [0, 1, 2] ary[5, 1] = "Z" p ary #=> [0, 1, 2, nil, nil, "Z"] ary = [0, 1, 2, 3] ary[0, 10] = ["a"] p ary #=> ["a"]
ary = [0, 1, 2, 3] ary[1, 0] = ["inserted"] p ary # => [0, "inserted", 1, 2, 3]
a = [0, 1, 2, 3, 4, 5] a[2, 3] = [] p a # => [0, 1, 5]