无法理解如何索引数组项

时间:2013-10-27 10:00:47

标签: ruby arrays

这是Ruby documentation for the Array class

的示例
arr = [1, 2, 3, 4, 5, 6]
arr[2, 3]
 => [3, 4, 5] 
arr[1, 2]
 => [2, 3]
嗯,什么?帮忙,有人吗?为什么[2,3]和[1,2]行为之间存在这种差异?

3 个答案:

答案 0 :(得分:2)

阅读Accessing Elements文档中的粗线:

  

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

当你使用一对参数(开始和长度)时,它将从起始索引开始返回子阵列并继续使用长度元素。

在行arr[1, 2]中 - 1是起始索引,2是长度。意味着您要从1的索引arr开始讲述,您想要获取2个元素。

在行arr[2, 3]中 - 2是起始索引,3是长度。意味着你要从2的索引arr开始讲述,你想要获取3个元素。

同时阅读Array#[]

答案 1 :(得分:1)

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

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]

答案 2 :(得分:0)

您可能更容易看到是否使用了一组字母。

>> 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。