迭代器
构造
use std::slice::Iter;
use std::iter::Iterator;
// 数组构造
let it = [1,2,3,4].iter();
// 向量构造
let it = vec![5; 3].iter();
// 可修改构造
let it = vec![5; 3].iter_mut();合并
// chain()将两个迭代器顺序拼接合并,后续有例子,可拼接成无限多个
let it = (0..10).chain(20..30);
// 0~9~20~29元组生成
let it = [1,3,5].iter().zip([2,4,6].iter());
assert_eq!(vec![(&1,&2),(&3,&4),(&5,&6)], it.collect::<Vec<(,)>>());
assert_eq!(vec![(0,'f'),(1,'o'),(2,'o')], (0..).zip("foo".chars()).collect::<Vec<_>>());
// 计算2个等长字符串中相同位置上字符不同的个数
let s1 = "amily";
let s2 = "emily";
let diff = s1.chars().zip(s2.chars()).filter(|x|x.0 != x.1).count();
println!("{diff}");//1案例
遍历
while-next 模式
for-in 模式
for_each 模式
案例
遍历切片
遍历数组
下一个元素
提取前几个元素
指定开始位
获取最后一个元素
反转
跳过
间隔步长
顺序合并
映射
格式
案例
求值
案例
过滤
格式
案例
过滤与映射
案例
收集
全量校验
格式
案例
累加器
格式
案例
Last updated