当应用于数组时,index
(使用块调用)返回满足条件的第一个元素的索引,rindex
返回最后一个元素的索引。同样,我们有find
来返回元素本身。但是,没有相应的rfind
会返回满足条件的数组的最后一个元素。
Ruby是否已经有了实现此目的的方法?
在修补Array
课程之前,我想确定一下。
答案 0 :(得分:4)
你可以这样做:
enum = [1, 2, 3, 4].reverse_each
# => #<Enumerator: [1, 2, 3, 4]:reverse_each>
enum.find(&:odd?)
# => 3
请注意,与使用Array#reverse
不同,它不会创建立即抛出的时间数组。
立即行动:
[1, 2, 3, 4].reverse_each.find(&:odd?)
# => 3
换句话说,我们reverse_each.find
代替rfind
;没什么大不了的。