Итератор — это объект, который позволяет последовательно обходить элементы коллекции, обычно реализуя методы для получения следующего элемента и проверки окончания обхода. Генератор — это специальный вид итератора, который создаётся с помощью функции, способной приостанавливать своё выполнение и возвращать значения по одному (например, с помощью ключевого слова yield в Python).
Что такое генератор и итератор? В чём отличие? Какое ключевое слово используется в генераторе?
Итератор — это объект, который позволяет последовательно обходить элементы коллекции, обычно реализуя методы для получения следующего элемента и проверки окончания обхода.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Итератор — это объект, который позволяет последовательно обходить элементы коллекции, обычно реализуя методы для получения следующего элемента и проверки окончания обхода. Генератор — это специальный вид итератора, который создаётся с помощью функции, способной приостанавливать своё выполнение и возвращать значения по одному (например, с помощью ключевого слова yield в Python).
Связь между ними в том, что генератор является удобным способом создания итераторов без необходимости вручную реализовывать весь интерфейс итератора.
Когда итератор доходит до конца, обычно он сигнализирует об этом специальным образом: в Python — возбуждается исключение StopIteration, в других языках — возвращается значение, указывающее на окончание (например, null или false). Это позволяет циклам и другим конструкциям понимать, что элементы закончились.