我正在处理 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) ”,它提出了同样的问题,但我仍然不了解索引在数组切片中的工作原理。