Какова цель класса 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 и в каком контексте он будет использоваться?