0

如何在不使用现有数组迭代器的情况下从我的数组包装器返回 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

4

1 回答 1

1

鉴于:

@inner = [1, 2, 3]

代码

@inner.to_enum

将返回一个枚举器。

enum = @inner.to_enum
enum.each{|e| p e}
# => 1, 2, 3
于 2013-10-10T13:27:34.817 回答