我很困惑的事实是,如果一个数组被切片length
,它会返回一个空数组,但如果长度大于该数组,则返回nil
。这是什么原因?例如:
arr = [1,2,3,4,5]
这样做,y > arr.length
和x
是任何正整数,返回nil
:
arr[y, x] # => nil
但执行以下操作会返回[]
arr[5, x] # => []
由于arr[5]
不存在,它不应该返回nil
吗?
答案 0 :(得分:2)
这些都在文档中:http://www.ruby-doc.org/core-2.1.0/Array.html#method-i-5B-5D
此外,当元素范围的起始索引位于数组的末尾时,将返回一个空数组。
如果索引(或起始索引)超出范围,则返回nil。