【发布时间】:2017-01-06 19:26:53
【问题描述】:
我在做 ruby koans 时遇到了这个问题。给定这个数组:
array = [1, 2, 3, 4]
array[4, 0] 等于 []。但是,array[5, 0] 等于 nil。
4 和 5 都超出索引。为什么他们返回不同的东西?
【问题讨论】:
我在做 ruby koans 时遇到了这个问题。给定这个数组:
array = [1, 2, 3, 4]
array[4, 0] 等于 []。但是,array[5, 0] 等于 nil。
4 和 5 都超出索引。为什么他们返回不同的东西?
【问题讨论】:
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,_) 从最后一个可能的位置开始:4 右侧。
slice(4,0) 还在array 里面,是4 右边的空数组。
slice(5,0) 不再在array 中,而是nil。
【讨论】: