当应用于数组时,index
(用 block 调用)返回满足条件的第一个元素的索引,rindex
返回最后一个元素的索引.同样,我们有 find
来返回元素本身。但是,没有相应的 rfind
会返回满足条件的数组的最后一个元素。
Ruby 是否已经有实现此目的的方法?
在对 Array
类进行猴子修补之前,我想确定一下。
最佳答案
你可以这样做:
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
;没什么大不了的。
关于ruby - 我们有 'index' 和 'rindex' ,我们有 'find' 但没有 'rfind',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45838083/