Может кто нибудь объяснить простым языком что такое генераторы и итераторы, например в php и чем отличается return от yield?
return
возвращает значение и прекращает работу функции.
yield
возвращает значение и переходит к началу цикла, работает дальше до тех пор, пока все значения не закончатся или пока приниматель значений не скажет "хватит!"
Дополню.
Итератор - по простому это объект (или другие контрукции), которые можно прогонять в цикле. Точнее Итератор - это интерфейс для этого, а вот то что можно прогнать в цикле - это итерируемый объект.
Массив - пример итерируемой структуры языка. Коллекция - это итерируемый объект.
Генератор - это тоже итератор, но только с другой структурой. Он позволяет остановиться на том моменте, где был прошлый цикл. Лучше почитать документацию, как это работает.
В целом генератор итератором. А итератор (итерируемый объект, только объект не смысле ООП, а в смысле простого указания) - это все, что можно использовать в цикле.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет, на днях решил написать скрипт, определяющий, находится ли человек на сайте на PHPнаписал, вроде все работает, но столкнулся с проблемой,...
Пытаюсь подключиться к базе данных с помощью этого скрипта
Есть задача: пользователь вводит в вебстраницу номер учебной группы, идёт запрос sql, пользователю возвращается расписание на сегодня
Есть триггер для проверки уникальности вставляемого поля login в таблицу Client