Ruby 红宝石阵列标记

Ruby 红宝石阵列标记,ruby,arrays,Ruby,Arrays,可能重复: 在我的ruby解释器上运行这段代码,结果是7..4输出nil,6..4输出nothing arr = [1, 2, 3, 4, 5, 6] p arr[7..4] p arr[6..4] 根据ruby文档,如果初始索引超出范围,则返回nil,在本例中,两个(6和7)都超出了数组的范围,但只有第一个返回nil 编辑以进行透视:输出如下: nil [] 为什么第一个返回零,第二个返回[] 嗯,可能口译员不理解“递减”范围,正在尝试 也没有返回任何内容,可能是因为[3..1]不是

可能重复:

在我的ruby解释器上运行这段代码,结果是7..4输出nil,6..4输出nothing

arr = [1, 2, 3, 4, 5, 6]

p arr[7..4]
p arr[6..4]
根据ruby文档,如果初始索引超出范围,则返回nil,在本例中,两个(6和7)都超出了数组的范围,但只有第一个返回nil

编辑以进行透视:输出如下:

nil 
[]

为什么第一个返回零,第二个返回[]

嗯,可能口译员不理解“递减”范围,正在尝试

也没有返回任何内容,可能是因为
[3..1]
不是范围。
[]s

好吧,可能解释器不理解“递减”范围,正在尝试

也没有返回任何内容,可能是因为
[3..1]
不是范围。
[]它不是重复的。在这个问题中,我们有
而不是
和反向边框。@Nakilon:没有区别,重要的是第一个索引@保罗:你应该用
p
更改
put
,以避免混淆切片的结果,以及
put
本身的结果。好的,我已经重读了,真的,是重复的。它不是重复的。在这个问题中,我们有
而不是
和反向边框。@Nakilon:没有区别,重要的是第一个索引@保罗:你应该用
p
更改
put
,以避免混淆切片的结果,以及
put
本身的结果。好的,我已经重读了,真的,重复了。这是一种问题,一个返回空[],另一个返回值nil。它们都应该返回nil或[],而不是一个执行nil,一个[]。这是osx上的1.8.7版本,如果有区别的话。在Ruby中,使用“反转”范围切片数组是很常见的:例如:
[1,2,3,4][1..-2]
给出了
[2,3]
。哈哈,我不知道。美好的谢谢@mladen这是个问题,一个返回空[],另一个返回值nil。它们都应该返回nil或[],而不是一个执行nil,一个[]。这是osx上的1.8.7版本,如果有区别的话。在Ruby中,使用“反转”范围切片数组是很常见的:例如:
[1,2,3,4][1..-2]
给出了
[2,3]
。哈哈,我不知道。美好的谢谢@Mladen
puts arr[3..1]