十三、迭代器
Published on
使用迭代器处理系列数据
使用迭代器可以对一系列数据依次进行处理。直到使用迭代器时,它不产生任何影响。
let v1 = vec![1, 2, 3];
// 获取Vec的迭代器
let v1_iter = v1.iter();
// 在for-in循环中使用迭代器
for val in v1_iter {
println!("Got: {}", val);
}
迭代器特性
迭代器需要实现类似如下的特性:
pub trait Iterator {
type Item;
fn next(&mut self) -> Option<Self::Item>;
}
消耗适配器
指会消耗掉迭代器的方法,调用这些方法后就不能再使用迭代器。
let v1 = vec![1, 2, 3];
let v1_iter = v1.iter();
let total: i32 = v1_iter.sum();
迭代器适配器
指会生成其它迭代器的方法,它们并不消耗原来的迭代器。
let v1: Vec<i32> = vec![1, 2, 3];
v1.iter().map(|x| x + 1);