Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpIrInr 95 of 280 menu
◀ ▶

Введение в итераторы в Go

Итератор отдает значения по одному в цикл перебора, не собирая их в новый срез заранее. Источник может быть своим кодом или готовым шагом из стандартной библиотеки, а на экран или в переменную попадает только текущий элемент, пока цикл не закончится.

Раньше перебор чаще брали из среза, карты или строки: цикл сам знал, сколько шагов сделать. Теперь в качестве источника можно подставить функцию, которая по очереди вызывает переданный ей шаг и решает, когда остановиться.

Такой прием не заменяет знакомый перебор по срезу и карте, а дополняет его там, где удобнее описать последовательность кодом шага, а не хранить все элементы сразу. Готовые итераторы для ключей карты и для значений среза уже лежат в пакетах, которые вы могли видеть в других темах.

В этом разделе сначала разберем передачу функции в цикл, затем готовые шаги для карты и среза, запись своей последовательности и останов перебора из тела цикла. В конце закрепим приемы на задачах без лишнего промежуточного среза.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить