可能重复:
Array slicing in Ruby: looking for explanation for illogical behaviour (taken from Rubykoans.com)为什么Ruby数组允许访问无效的范围索引?
在Ruby koans之一,有以下问题:
def test_slicing_arrays
array = [:peanut, :butter, :and, :jelly]
assert_equal _, array[0,1]
assert_equal _, array[0,2]
assert_equal _, array[2,2]
assert_equal _, array[2,20]
assert_equal _, array[4,0]
assert_equal _, array[4,100]
assert_equal _, array[5,0]
end
必须在_填入正确的说法。前四个断言符合我期望他们的工作方式,但我对后三个问题感到困惑。
array[4,0]
返回[]
,与array[4,100]
一样。在这一点上,我认为数组之外的范围(在这种情况下大于3)只是返回一个空数组。
但是array[5,0]
返回nil
现在已经完全困惑了我。
任何人都可以解释这种行为吗?
见http://stackoverflow.com/questions/3568222/array-slicing-in-ruby-looking- for-explanation-for-illogical-behavior-taken-fr – nimrodm 2012-01-07 19:43:00
希望我在搜索时发现了这个问题 - 谢谢。 – Martin 2012-01-07 19:48:47
这是您在输入问题时提供的stackoverflow相关问题列表中的第二个问题(请参阅页面的右侧侧栏)。无论如何,很高兴我可以帮助:) – nimrodm 2012-01-07 21:10:49