有关Ruby的Array的例子

有关Ruby的Array的例子

原版Programming php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby 2nd的P.42讲述了php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby Array的时用了这样的例子,如下:
a = [ 1, 3, 5, 7, 9 ] -> [1, 3, 5, 7, 9]
a[2, 2] = ’cat’    -> [1, 3, "cat", 9]
a[2, 0] = ’dog’   -> [1, 3, "dog", "cat", 9]
a[1, 1] = [ 9, 8, 7 ] -> [1, 9, 8, 7, "dog", "cat", 9]
a[0..3] = []     -> ["dog", "cat", 9]
a[5..6] = 99, 98   -> ["dog", "cat", 9, nil, nil, 99, 98]

我不明白红色的那个的结果为啥是那样的。有谁可以指点一下吗?谢谢!
红色部分的意思是:
数组从索引0开始,长度为4的那些元素被[]替代:[1,9,8,7]
[0,,3]表示一个范围,长度为4
那么就只剩下了后面的元素了,即是:
["dog", "cat", 9]

如果换成[0...3]
即是:
[7,"dog", "cat", 9]
[]指的是啥?
我没明白这个。
空数组啊
也就是说,上面红色的地方应该是:a[0..3] = [] -> [nil, nil, nil, nil, "dog", "cat", 9]
nil在前面和后面都不表示,就成为 ["dog", "cat", 9]了,对吧?
那在此时,a数组的长度是几呀? 是5,是7,还是3?

我做了irb,这时数组长度是3了。也就是Ruby的这种方法可以使数组变短。哈哈,有意思!
空不是指把nil放到里面作为数组元素,是指那个数组没元素
空数组和[nil,nil]是不同的
哦,是这样呀。我再看看。
把零到三的元素干掉。就这个意思。
了解!