假设我有一个可枚举对象enum
,现在我想获取第三个项目。
我知道一种通用方法是转换成数组,然后使用索引访问,如:
enum.to_a[2]
但这种方式会创建一个临时数组,效率可能很低。
现在我使用:
enum.each_with_index {|v, i| break v if i == 2}
但这非常丑陋和多余。
执行此操作最有效的方法是什么?
最佳答案
你可以使用 take
剥离前三个元素,然后剥离 last
从 take
给你的数组中获取第三个元素:
third = enum.take(3).last
如果您根本不想生成任何数组,那么也许:
# If enum isn't an Enumerator then 'enum = enum.to_enum' or 'enum = enum.each'
# to make it one.
(3 - 1).times { enum.next }
third = enum.next
关于ruby - 引用具有指定索引的枚举器值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10973834/