我正在处理 Ruby Koans 中的 about_arrays.rb 文件,我注意到了这段代码,但我不确定为什么答案是这样的:
def test_slicing_arrays
array = [:peanut, :butter, :and, :jelly]
assert_equal [], array[4,0]
assert_equal [], array[4,100]
assert_equal nil, array[5,0]
end
根据 Ruby Koans 的输出,有人可以向我解释为什么array[4,0]
会评估为[]
而array[5,0]
评估为nil?
. 为什么不array[5,0]
评估到[]
?
出于好奇,我尝试了array[6,0]
,array[7,0]
等等,但也得到了 nil。Ruby 是否为数组索引下一行添加了一些特殊的东西?
编辑:
我发现“ Ruby 中的数组切片:寻找不合逻辑行为的解释(取自 Rubykoans.com) ”,它提出了同样的问题,但我仍然不了解索引在数组切片中的工作原理。