Я изучал сходства/различия между генераторами Ruby и Python (известный как Enumerators в Ruby), и насколько я могу сказать, они в значительной степени эквивалентны.
Однако одно замечание, которое я заметил, это то, что генераторы Python поддерживают метод close(), тогда как Ruby Generators этого не делают. Из документов Python метод close(), как говорят, выполняет следующие действия:
Вызывает генератор Exit в точке, где функция генератора была приостановлена. Если функция генератора затем вызывает StopIteration (путем выхода из нормального состояния или из-за уже закрытого состояния) или GeneratorExit (если не поймать исключение), close возвращает его вызывающему.
Есть ли веская причина, почему Ruby Enumerators не поддерживает метод close()? Или это случайный
упущение?
Я также обнаружил, что Ruby Enumerators поддерживает метод rewind(), но генераторы Python не... есть ли причина для этого тоже?
Спасибо