搜索从给定索引开始的Array元素

Pat*_*ois 7 ruby arrays

在Python中,您可以在搜索列表元素时指定开始和结束索引:

>>> l = ['a', 'b', 'a']
>>> l.index('a')
0
>>> l.index('a', 1) # begin at index 1
2
>>> l.index('a', 1, 3) # begin at index 1 and stop before index 3
2
>>> l.index('a', 1, 2) # begin at index 1 and stop before index 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 'a' is not in list
Run Code Online (Sandbox Code Playgroud)

Ruby中有相同的功能吗?您可以使用数组切片,但这似乎效率较低,因为它需要中间对象.

use*_*951 2

Ruby 中没有等效的功能。

您可以从数组的开头搜索并使用 向前搜索到结尾#index,或者从数组的结尾搜索并使用 向后搜索到开头#rindex。要从一个任意索引转到另一个索引,您必须首先使用数组切片(例如使用#[])将数组切片为感兴趣的索引,如OP建议的那样。