Rust 迭代chain概述 - 連結兩個迭代器
chain
這篇講解Chain
可用於迭代器
文件[1]這樣寫
一個用於連結兩個迭代器的迭代器
fn chain<U>(self, other: U) -> Chain<Self, U>
where
Self: Sized,
U: IntoIterator<Item = Self::Item>,
self為一個迭代器
other也為一個迭代器
最後輸出連結後的結果,還是一個迭代器
例子
這邊有一個基本的用法
假設我有兩個數組
希望把它們合併
let numbers1 = vec![1, 2, 3];
let numbers2 = vec![4, 5, 6];
// 連結兩個迭代器
let combined_iter = numbers1
.iter()
.chain(numbers2.iter())
.collect::<Vec<_>>();
for num in combined_iter {
println!("Number: {}", num);
}
第一行與第二行為產生數組
第四行則是連結兩個數組
將numbers1放入迭代器,並透過chain連結放入迭代器的numbers2,最後透過collect回傳Vec
並使用for迴圈傳出連結後的結果
切片例子
而chain也可以用於切片
let str1 = "Hello";
let str2 = "World!";
// 使用 chain 連結切片字串
let combined_string = str1.chars().chain(str2.chars()).collect::<String>();
println!("Combined string: {}", combined_string);
Combined string: HelloWorld!
一樣兩個切片
透過char即可逐個搜索切片內的字,
而後使用chain將兩個切片連結後最終呈現HelloWorld!
參考資料
[1] https://doc.rust-lang.org/stable/std/iter/struct.Chain.html
0 comments:
張貼留言