Rust 迭代 skip - 跳過迭代器前幾個元素
迭代skip
有時候迭代器想要跳過前幾個元素
例如說網頁、路徑等等
可能某些情況下前幾個並不是想要的
這時候就可以用skip跳過
文件這樣解釋
skip[1]
fn skip(self, n: usize) -> Skip<Self>
where
Self: Sized,
自身為迭代器
可以輸入一個數字,此數字表示前幾個元素捨棄
最後輸出一個迭代器
例子
fn main() {
let data = [1, 2, 3];
let res = data.iter().skip(2).collect::<Vec<_>>();
println!("Result: {:?}", res);
}
Result: [3]假設有個data是1 2 3
放入迭代器
去除掉前兩個
就只會剩下3
實際應用
我最常是用在看資料夾內所有東西上
因為有些做法會連資料夾本身也算進去
而不是只會顯示資料夾裡面的東西
例如
use walkdir::WalkDir;
fn main() {
// 指定要遍歷的資料夾路徑
let folder_path = "src";
// 使用 WalkDir 遍歷資料夾
for entry in WalkDir::new(folder_path) {
if let Ok(entry) = entry {
let path = entry.path();
println!("Full Path: {:?}", path);
}
}
}
Full Path: "src"
Full Path: "src\\main.rs"使用WalkDir[2]遍歷資料夾內的東西
但如果只是這樣打
可以看到輸出結果為src和src\main.rs
連資料夾本身也算進去了
這可能不是我想要的結果
因此可以使用skip跳過資料夾本身
use walkdir::WalkDir;
fn main() {
// 指定要遍歷的資料夾路徑
let folder_path = "src";
// 使用 WalkDir 遞迴地遍歷資料夾
for entry in WalkDir::new(folder_path).into_iter().skip(1) {
if let Ok(entry) = entry {
let path = entry.path();
println!("Full Path: {:?}", path);
}
}
}
Full Path: "src\\main.rs"迭代的時候跳過第一個資料夾
從資料夾內部開始輸出
參考資料
[1] https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.skip
0 comments:
張貼留言