На этом уроке мы узнаем, как упростить создание итератора. Для этого достаточно просто написать нужный нам цикл, внутри которого воспользоватся волшебным словом yield.
Дата отправки отчёта:
1 октября 2018 г.
Задание выполнено: за
4 час. 26 мин.
Чему научился:
yield это синтаксический сахар для автоматической реализации IEnumerator в котором хранится состояние перечисления.
Да оно и не всегда нужно. Основное удобство в возможности обращаться как к коллекции к источнику данных, когда заранее неизвестно количество данных. Например, можно оформить программу, как будто мы в цикле foreach перебираем коллекцию простых чисел для поиска подходящего для деления имеющегося числа, но при этом самой коллекции со всеми заранее просчитанными простыми числами у нас нет, а мы их получаем только по мере надобности.
Научился: Использованию yield. Yield позволяет избавится от реализации дополнительного класса , при использовании цикла foreach. И в определенных ситуациях оптимизировать вычисления при большом переборе значений.
Научился: На этом уроке мы наконец-то воспользовались помощью волшебного слова yield. Я еще не до конца прочувствовал эту тему. В голове возникал вопрос: "Для чего городить огород, если есть цикл foreach, который до этого всегда выручал и без использования этих интерфейсов!" Оказалось, что foreach также использует итератор, но неявно. На данный момент я понимаю так: Класс , являющийся коллекцией объектов, использует yield для реализации последовательного обращения ко всем своим элементам с начала до конца. При выполнении программы, yield создаёт класс, который содержит ряд методов по созданию счётчика перечисления, отслеживанию его переполнения, сброса при повторном обращении и тому подобное...