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

Функция once

Функция once создаёт итератор, который возвращает ровно один элемент - тот, который был передан в качестве аргумента. После выдачи этого элемента итератор завершается. Функция принимает значение любого типа T и возвращает Once<T>, реализующий трейт Iterator с типом элемента T. Функция полезна, когда нужно включить одиночное значение в цепочку итераторов.

Синтаксис

std::iter::once(value)

Пример

Давайте создадим итератор из одного числа и выведем его элементы:

fn main() { let mut iter = std::iter::once(5); println!("{:?}", iter.next()); println!("{:?}", iter.next()); }

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

Some(5) None

Пример

Давайте соберём элементы итератора в вектор:

fn main() { let res: Vec<i32> = std::iter::once(1).collect(); println!("{:?}", res); }

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

[1]

Пример

Давайте объединим одиночный элемент с другим итератором с помощью метода chain:

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

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

[1, 2, 3, 4, 5]

Пример

Давайте применим once для строки и преобразуем её через метод map:

fn main() { let res: Vec<String> = std::iter::once("abcde") .map(|s| s.to_uppercase()) .collect(); println!("{:?}", res); }

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

["ABCDE"]

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

  • трейт Iterator,
    который реализуют все итераторы
  • метод chain,
    который объединяет два итератора в один
  • функция repeat,
    которая создаёт итератор с бесконечным повтором элемента
  • функция empty,
    которая создаёт пустой итератор
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить