【发布时间】:2012-01-07 19:26:12
【问题描述】:
可能重复:
Array slicing in Ruby: looking for explanation for illogical behaviour (taken from Rubykoans.com)
在其中一个 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,这让我完全糊涂了。
谁能解释这种行为?
【问题讨论】:
-
希望我在搜索时发现了这个问题 - 谢谢。
-
这是您输入问题时stackoverflow提供的相关问题列表中的第二个(参见页面右侧边栏)。无论如何,很高兴我能帮忙:)