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:
張貼留言