我在做ruby koans时遇到了这个问题。给定这个数组:
array = [1, 2, 3, 4]
array[4, 0]
等于[]
。但是,array[5, 0]
等于nil
。
4和5都不在索引范围内。为什么他们会回归不同的东西?
答案 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
。