Ruby 难以理解如何索引数组项

Ruby 难以理解如何索引数组项,ruby,arrays,Ruby,Arrays,这是一个来自 嗯,什么?有人帮忙吗?为什么[2,3]和[1,2]行为之间存在这种差异?阅读以下文档中的粗体行: 可以使用#[]方法检索数组中的元素。它可以采用单个整数参数(数字索引)、一对参数(起始和长度)或一个范围 当您使用一对参数(开始和长度)时,它将返回一个子数组,从开始索引开始,继续搜索长度元素。 在arr[1,2]-1是起始索引,2是长度。表示从arr的索引1开始,您要获取2个元素 在arr[2,3]-2是起始索引,3是长度。表示从arr的索引2开始,您要获取3个元素 也请阅读。这里没

这是一个来自


嗯,什么?有人帮忙吗?为什么[2,3]和[1,2]行为之间存在这种差异?

阅读以下文档中的粗体行:

可以使用#[]方法检索数组中的元素。它可以采用单个整数参数(数字索引)、一对参数(起始和长度)或一个范围

当您使用一对参数(开始和长度)时,它将返回一个子数组,从开始索引开始,继续搜索长度元素。

arr[1,2]
-1是起始索引,2是长度。表示从
arr
的索引
1
开始,您要获取2个元素

arr[2,3]
-2是起始索引,3是长度。表示从
arr
的索引
2
开始,您要获取3个元素


也请阅读。

这里没有差异(Ruby数组索引以零开始)


如果您使用的是字母数组,则更容易查看

>> arr = %w[a b c d e f g]
=> ["a", "b", "c", "d", "e", "f", "g"]
>> arr[2, 3]
=> ["c", "d", "e"]
>> arr[1, 2]
=> ["b", "c"]
前面的两个描述适用于这里,但是你很少有机会不翻译你所要求的和你所得到的

数组的索引从0开始,所以当要求从索引2开始的3个元素时,得到的是c、d和e

当您要求从索引1开始的2个元素时,您得到b和c

arr = [1, 2, 3, 4, 5, 6] 
      (0, 1, 2, 3, 4, 5)  #=> their index/positions       

arr[2,3] #=> arr[start,length]- start at 2nd index; it has value 3 and get 3 elements [3,4,5]
arr[1,2] #=> arr[start,length]- start at 1st index; it has value 2 and get 2 elements [2,3]
>> arr = %w[a b c d e f g]
=> ["a", "b", "c", "d", "e", "f", "g"]
>> arr[2, 3]
=> ["c", "d", "e"]
>> arr[1, 2]
=> ["b", "c"]