Существует этот метод # перечисления # перечислителя, который я обнаружил случайно. Он определяется как:
feed obj → nil
Устанавливает значение, возвращаемое следующим выходом внутри e. Если значение не задано, доходность возвращает nil. Это значение очищается после сдачи.
Я изучил примеры и подумал "Yay!", это должно работать с помощью feed
:
enum = ['cat', 'bird', 'goat'].each # creates an enumerator
enum.next #=> 'cat'
enum.feed 'dog'
enum.next #=> returns 'bird', but I expected 'dog'
Но это не сработает. Я предполагаю, что он не возвращает 'dog'
, потому что each
не использует yield
внутренне.
Дело в том, что из приведенного примера в документации я не мог вывести случаи использования в реальном мире, Google не является другом с этим вопросом, и (из того, что я пробовал) feed
, похоже, не хорошо работают с другими методами Enumerator
/Enumeration
.
Можете ли вы, пожалуйста, дать мне хороший пример, который объясняет feed
, так что я могу обойти его вокруг?