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

Введение в свой итератор в Rust

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

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

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

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

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