可能重复:
Array slicing in Ruby: looking for explanation for illogical behaviour (taken from Rubykoans.com)
我有一个数组'a'
a = [ "a", "b", "c", "d", "e" ]
我已经完成了以下实验
irb(main):003:0> a[4,1]
=> ["e"]
irb(main):004:0> a[5,1]
=> []
irb(main):005:0> a[6,1]
=> nil
irb(main):006:0>
我的问题是,
如果[5,1]为什么它返回一个空数组而不是'nil'? 这种行为有望吗?如果是这样的话?
在Ruby doc中,它被标记为“#特殊情况”, 不幸的是,他们没有解释为什么这样工作?
我已经注意到同样的问题,也解决了堆栈溢出的两个地方,first和second 在第一个中,它被解释为“切片不识别元素,但在元素之间放置”
在第二个中,它被解释为ruby实现的错误。
这个问题的正确解释是什么?