隱私權政策

搜尋此網誌

技術提供:Blogger.

關於我自己

我的相片
目前從事軟體相關行業,喜歡閱讀、健身、喝調酒。習慣把遇到的問題記下來,每天做一些整理方便自己以後查。 Python、Rust、Kotlin等程式語言皆為自學,目前比較著重在Rust語言,歡迎一起討論。

2023年11月5日 星期日

Rust 迭代position概述 - 找到滿足條件元素的索引值


這篇在講position

position作用為找到一個參數在數組中的位置

文件[1]這樣寫

尋找一個元素,回傳他的索引,也就是他在數組中的位置

    fn position<P>(&mut self, predicate: P) -> Option<usize>
    where
        Self: Sized,
        P: FnMut(Self::Item) -> bool,

self為一個可變引用迭代器

predicate為一個閉包,當滿足條件時回傳true,當都找不到元素則為false

找到第一個符合條件的回傳Option,回傳索引值,當找不到則會None


例子

例如有一個數組,我們希望找出大於10的第一個索引值

可以透過這樣打

    let numbers = vec![5, 8, 12, 3, 15, 7];
    if let Some(index) = numbers.iter().position(|&x| x >= 10) {
        println!("First element >= 10 found at index: {}", index);
    } else {
        println!("No element found.");
    }

第一行為產生數組

第二行透過if let Some(index)找出索引值

先將numbers放進iter,並且使用position透過閉包|&x| x >= 10,找出大於10的索引

最後輸出會呈現

First element >= 10 found at index: 2



參考資料

[1] https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.position

0 comments:

張貼留言