ruby-1.8.7-p174 > [0,1][2..3] => [] ruby-1.8.7-p174 > [0,1][3..4] => nil
在0索引设置中,索引2,3和4实际上超出了2项数组的范围,为什么这些返回不同的值?
解决方法
这是一个已知的丑角奇怪的角落.看看rdoc为
Array#slice的例子.
这个具体问题列为“特例”
a = [ "a","b","c","d","e" ] a[2] + a[0] + a[1] #=> "cab" a[6] #=> nil a[1,2] #=> [ "b","c" ] a[1..3] #=> [ "b","d" ] a[4..7] #=> [ "e" ] a[6..10] #=> nil a[-3,3] #=> [ "c","e" ] # special cases a[5] #=> nil a[5,1] #=> [] a[5..10] #=> []
如果开始只是数组末尾的一个项目,那么它将返回一个空数组[].如果开始是超出这个范围,那么没有.有记录,虽然我不知道它的原因.