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

Метод position

Метод position перебирает элементы итератора и возвращает индекс первого элемента, для которого замыкание-предикат вернуло true. Если ни один элемент не удовлетворяет условию, метод возвращает None. Параметром метод принимает замыкание, которое получает ссылку на очередной элемент и возвращает bool.

Метод возвращает значение типа Option<usize>: Some(индекс) при успехе или None, если подходящий элемент не найден. Индексация начинается с нуля.

Синтаксис

iter.position(predicate)

Пример

Давайте найдём индекс первого чётного числа в векторе:

fn main() { let vec = vec![1, 3, 4, 5, 6]; let res = vec.iter().position(|&x| x % 2 == 0); println!("{:?}", res); }

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

Some(2)

Пример

Давайте найдём индекс элемента, которого нет в векторе:

fn main() { let vec = vec![1, 3, 4, 5, 6]; let res = vec.iter().position(|&x| x == 99); println!("{:?}", res); }

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

None

Пример

Давайте найдём индекс первой строки, начинающейся с буквы "c", в векторе строк:

fn main() { let vec = vec!["abcde", "12345", "cde"]; let res = vec.iter().position(|&s| s.starts_with("c")); println!("{:?}", res); }

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

Some(2)

Пример

Давайте извлечём индекс из результата с помощью unwrap_or и выведем его как число:

fn main() { let vec = vec![10, 20, 30, 40, 50]; let res = vec.iter().position(|&x| x > 25).unwrap_or(0); println!("{}", res); }

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

2

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

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