可能重复:
Array slicing in Ruby: looking for explanation for illogical behaviour (taken from Rubykoans.com)
在我的ruby解释器上运行此代码,最终得到7..4输出nil,而6..4输出
arr = [1, 2, 3, 4, 5, 6]
p arr[7..4]
p arr[6..4]
根据ruby doc,如果初始索引超出范围,则返回nil,在这种情况下,(6& 7)都超出了数组的范围,但只有第一个返回nil。
编辑for clairification:输出如下:
nil
[]
为什么第一个返回nil而第二个返回[]?
答案 0 :(得分:1)
好吧,解释器可能不理解“减少”的范围,尝试
puts arr[3..1]
也没有返回任何内容,可能是因为[3..1]
不是范围。
[]中