该封装类使得each以外的方法,如each_byte等也能进行enumerate。
另外请参考enumerator.so。
Enumerable::Enumerator.new(obj,
method = :each, *args)
为obj对象生成一个使用method方法而非each来进行迭代操作的对象,并返回该对象。若指定了args的话,将会在调用method时把它传递出去。
例:
str = "xyz"
enum = Enumerable::Enumerator.new(str, :each_byte)
a = enum.map {|b| '%02x' % b } #=> ["78", "79", "7a"]
each {...}
按照生成时的参数的规定,进行迭代操作。