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

Метод peekable

Метод peekable создаёт обёртку над итератором - Peekable, которая позволяет посмотреть на следующий элемент, не потребляя его. Это удобно, когда нужно принять решение о дальнейшей обработке, основываясь на значении следующего элемента. Метод не принимает параметров и возвращает значение типа Peekable. У полученной обёртки доступны методы peek, peek_mut и next.

Синтаксис

iterator.peekable()

Пример

Давайте создадим Peekable из вектора и заглянем на следующий элемент, не извлекая его:

fn main() { let mut iter = vec![1, 2, 3, 4, 5].into_iter().peekable(); let first = iter.peek(); println!("{:?}", first); println!("{:?}", iter.next()); }

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

Some(1) Some(1)

Пример

Давайте посмотрим, как peek возвращает None, когда итератор исчерпан:

fn main() { let mut iter = vec!["a", "b"].into_iter().peekable(); println!("{:?}", iter.next()); println!("{:?}", iter.next()); println!("{:?}", iter.peek()); }

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

Some("a") Some("b") None

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

  • класс Iterator,
    который представляет базовый интерфейс итераторов
  • структура Peekable,
    которая хранит обёртку итератора с возможностью заглядывания вперёд
  • метод next,
    который извлекает следующий элемент итератора
  • метод next_back,
    который извлекает элемент с конца итератора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить