在ruby中切片数组会返回不同的结果 - nil与空数组

时间:2014-02-01 09:46:41

标签: ruby arrays

我很困惑的事实是,如果一个数组被切片length,它会返回一个空数组,但如果长度大于该数组,则返回nil。这是什么原因?例如:

arr = [1,2,3,4,5]

这样做,y > arr.lengthx是任何正整数,返回nil

arr[y, x] # => nil

但执行以下操作会返回[]

arr[5, x] # => []

由于arr[5]不存在,它不应该返回nil吗?

1 个答案:

答案 0 :(得分:2)

这些都在文档中:http://www.ruby-doc.org/core-2.1.0/Array.html#method-i-5B-5D

  

此外,当元素范围的起始索引位于数组的末尾时,将返回一个空数组。

     

如果索引(或起始索引)超出范围,则返回nil。