为什么Ruby Array切片有时返回nil并且有时会返回空数组?

时间:2017-01-06 19:26:53

标签: arrays ruby

我在做ruby koans时遇到了这个问题。给定这个数组:

array = [1, 2, 3, 4]

array[4, 0]等于[]。但是,array[5, 0]等于nil

4和5都不在索引范围内。为什么他们会回归不同的东西?

1 个答案:

答案 0 :(得分:1)

Array#slice(start,length)的第一个参数是之间的位置,切片应该从哪里开始:

array = [1, 2, 3, 4]
# elements            : [   1   2   3   4   ]
#                         ↑   ↑   ↑   ↑   ↑
# slice start indices :   0   1   2   3   4

slice(0,_)1左侧开始,slice(3,_)4左侧开始,slice(4,_)从最后一个位置开始:{{1}右侧}。

4仍在slice(4,0)内,它是array的空数组。

4不在slice(5,0)内,而是array