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 に答える