arr.[ ]= 这个方法的参数有三种形式
1.参数为1个数字int,设置下标为int的元素
2.参数为两个数字,start,end, 替换从start开始到end结束处的元素
3.参数为一个区间range,
替换由range指定的子数组
注意加粗部分
a[0] = [] ->[ , 2, 3, 4, 5]
a[0..0] = [] ->[2, 3, 4, 5]
执行第二步的时候是把a数组的子数组[nil]替换成空数组[]
注意子数组虽然只有一个nil元素,但他还是长度为一的数组
把[nil]替换成空数组,剩下的a就是[2,3,4,5]了.所以长度是4
再举个例子
a = [1,2,3,4,5]
a[1..3] = "A"
p a #=>[1,"A",5]