Ruby 3.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]