Какова цель класса Enumerator в Ruby

Если я создаю Enumertor, например, так:

enum = [1,2,3].each => #<Enumerator: [1, 2, 3]:each> 

enum перечислитель Какова цель этого объекта? Я не могу сказать это:

enum { |i| puts i }

Но я могу сказать это:

enum.each { |i| puts i }

Это кажется излишним, потому что Enumerator был создан с.each, Кажется, что он хранит некоторые данные, касающиесяeach метод.

Я не понимаю, что здесь происходит. Я уверен, что есть некоторая логическая причина, по которой у нас есть этот класс Enumerator, но что он может сделать, чего не может массив? Я подумал, что, возможно, это был предок Array и других Enumerables, но это не так. В чем именно причина существования класса Enumerator и в каком контексте он будет использоваться?

Ответы на вопрос(5)

Ваш ответ на вопрос