РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
639 of 1245 menu

Метод step_by

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

Синтаксис

iter.step_by(step)

Пример

Давайте возьмём каждый второй элемент вектора vec![1, 2, 3, 4, 5, 6]:

fn main() { let res: Vec<i32> = vec![1, 2, 3, 4, 5, 6] .into_iter() .step_by(2) .collect(); println!("{:?}", res); }

Результат выполнения кода:

[1, 3, 5]

Пример

Давайте возьмём каждый третий элемент вектора vec!["a", "b", "c", "d", "e"]:

fn main() { let res: Vec<&str> = vec!["a", "b", "c", "d", "e"] .into_iter() .step_by(3) .collect(); println!("{:?}", res); }

Результат выполнения кода:

["a", "d"]

Пример

Метод step_by можно комбинировать с другими адаптерами, например, с map. Давайте возьмём каждый второй элемент и умножим его на 10:

fn main() { let res: Vec<i32> = vec![1, 2, 3, 4, 5, 6] .into_iter() .step_by(2) .map(|x| x * 10) .collect(); println!("{:?}", res); }

Результат выполнения кода:

[10, 30, 50]

Смотрите также

  • метод skip,
    который пропускает первые n элементов итератора
  • метод take,
    который возвращает первые n элементов итератора
  • метод enumerate,
    который добавляет индекс к каждому элементу итератора
  • метод map,
    который преобразует каждый элемент итератора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить