如何在不使用现有数组迭代器的情况下从数组包装器返回Enumerator?
class MyArray
def initialize
@inner = []
end
def each
index = 0
while index < @inner.size
yield @inner[index] if block_given?
index += 1
end
end
end
我无法弄清楚如何避免在@inner.each
方法的末尾调用each
之类的内容。
答案 0 :(得分:1)
假设:
@inner = [1, 2, 3]
代码
@inner.to_enum
将返回一个枚举器。
enum = @inner.to_enum
enum.each{|e| p e}
# => 1, 2, 3