在Ruby中,获取块返回true的第一个可枚举元素的最快方法是什么?
例如:
arr = [12, 88, 107, 500]
arr.select {|num| num > 100 }.first # => 107
我希望这样做,而不必像select
一样遍历整个数组,因为我只需要第一个匹配项.
我知道我可以打each
分,但我认为有一种本土的方法可以做到这一点;我只是在文件里没找到.
在Ruby中,获取块返回true的第一个可枚举元素的最快方法是什么?
例如:
arr = [12, 88, 107, 500]
arr.select {|num| num > 100 }.first # => 107
我希望这样做,而不必像select
一样遍历整个数组,因为我只需要第一个匹配项.
我知道我可以打each
分,但我认为有一种本土的方法可以做到这一点;我只是在文件里没找到.
包括Array
和Hash
在内的几个核心ruby类包括Enumerable
模块,该模块提供了许多有用的方法来处理这些枚举.
本模块提供了find
or detect
methods个选项,这些选项正是您想要实现的目标:
arr = [12, 88, 107, 500]
arr.find { |num| num > 100 } # => 107
两个方法名称都是同义词,其作用完全相同.