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

Метод skip_while

Метод skip_while создаёт новый итератор, который пропускает элементы исходного итератора до тех пор, пока переданный предикат возвращает true. Как только предикат вернёт false, метод прекращает пропускать элементы и начинает возвращать все оставшиеся элементы, включая тот, на котором предикат вернул false. Параметром метод принимает замыкание-предикат, которое получает ссылку на очередной элемент и возвращает bool.

Важно понимать, что skip_while проверяет предикат только до первого false. После этого предикат больше не вызывается, и все последующие элементы возвращаются без проверки.

Синтаксис

iter.skip_while(predicate)

Пример

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

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

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

[3, 4, 5]

Пример

Давайте пропустим элементы вектора vec![1, 2, 3, 4, 5], пока они меньше 10. Так как все элементы меньше 10, результирующий итератор окажется пустым:

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

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

[]

Пример

Давайте пропустим элементы вектора vec![1, 2, 3, 4, 5], пока они меньше 0. Так как первый же элемент не удовлетворяет условию, ни один элемент не будет пропущен:

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

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

[1, 2, 3, 4, 5]

Пример

Давайте пропустим строки вектора vec!["abcde", "12345", "hello", "world"], пока их длина меньше 6:

fn main() { let res: Vec<&str> = vec!["abcde", "12345", "hello", "world"] .into_iter() .skip_while(|s| s.len() < 6) .collect(); println!("{:?}", res); }

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

["hello", "world"]

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

  • метод skip,
    который пропускает заданное количество элементов итератора
  • метод take_while,
    который берёт элементы, пока предикат возвращает true
  • метод filter,
    который оставляет только элементы, удовлетворяющие предикату
  • метод map_while,
    который преобразует элементы, пока предикат возвращает true
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить