如题所示,代码如下,个人自制的仿标准库的代码。
struct Mycollections{
data:Vec<i32>,
index:usize,
}
impl Iterator for Mycollections{
type Item = i32;
fn next(&mut self) -> Option<Self::Item> {
if self.index<self.data.len(){
let result = self.data[self.index];
self.index += 1;
Some(result)
}else{
None
}
}
}
fn main(){
//index为开始的索引号
let myvec = Mycollections{data:vec![1,2,3,4,5,6,7,8,9],index:9};
for x in myvec{
println!("{}",x);
}
let r = Some(23);
let dr=r.map(|x|x*2).unwrap_or(0);
println!("dr的值为:{}",dr)
}
//运行代码如下:
dr的值为:46