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

Метод next_back

Метод next_back возвращает следующий элемент итератора, но не с начала, а с конца. Он доступен только для итераторов, реализующих трейт DoubleEndedIterator. Метод возвращает Some(элемент), если элементы ещё остались, и None, когда итератор исчерпан. Параметров метод не принимает.

Синтаксис

iterator.next_back()

Пример

Давайте получим последний элемент вектора vec![1, 2, 3, 4, 5] с помощью метода next_back:

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

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

Some(5)

Пример

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

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

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

Some(1) Some(5) Some(2) Some(4) Some(3)

Пример

Давайте вызовем метод next_back у пустого итератора и убедимся, что он возвращает None:

fn main() { let mut iter = Vec::<i32>::new().into_iter(); let res = iter.next_back(); println!("{:?}", res); }

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

None

Пример

Давайте применим метод next_back к строке "abcde" и получим символы с конца:

fn main() { let mut iter = "abcde".chars(); println!("{:?}", iter.next_back()); println!("{:?}", iter.next_back()); }

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

Some('e') Some('d')

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

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