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

Практика на свой итератор в Rust

Дана структура:

struct Count { n: i32, end: i32, }

Реализуйте обход от n до end не включая верхнюю границу. Выведите числа для Count { n: 2, end: 5 } в цикле for.

Дана структура:

struct Down { v: i32, floor: i32, }

Сделайте обход, который уменьшает v на единицу, пока оно не станет меньше floor. Элемент i32. Пройдите вручную через match и напечатайте значения для Down { v: 3, floor: 0 }.

Дана структура:

struct PairGen { a: i32, b: i32, turn: bool, }

Чередуйте выдачу a и b, пока оба не будут отданы по одному разу, затем завершите обход. Связанный тип i32. Выведите оба числа для PairGen { a: 7, b: 9, turn: true }.

Даны структуры:

struct Count { n: i32, end: i32, } struct Triple<I> { inner: I, }

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

Дана структура:

struct Skip<I> { inner: I, left: u32, }

Пропустите первые left элементов внутреннего обхода с типом i32, затем отдавайте остальные без изменений. Свяжите со своим счетчиком и покажите вывод при left: 1.

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

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