配列への代入

配列への代入の際、添字が範囲になっていると、その範囲が置換されます。つまり、添字の範囲がいったん削除され、その位置に要素が挿入されます。
添字が範囲になっているときにnilを代入すると単なる削除になります。a[0]へnilを代入したときと、a[0..0]へnilを代入したときの振る舞いがまったく違うことに注意しましょう。

a = [ 'A', 'B', 'C', 'D', 'E', 'F', 'G' ]
p a                   #=> ["A", "B", "C", "D", "E", "F", "G"]
a[1..2] = 'Rubyco'
p a                   #=> ["A", "Rubyco", "D", "E", "F", "G"]
a[3..4] = nil
p a                   #=> ["A", "Rubyco", "D", "G"]
a[0] = nil
p a                   #=> [nil, "Rubyco", "D", "G"]
a[0..0] = nil
p a                   #=> ["Rubyco", "D", "G"]
a[-2..-1] = nil
p a                   #=> ["Rubyco"]