Rust 学习笔记:关于迭代器的练习题
Rust 学习笔记:关于迭代器的练习题
- Rust 学习笔记:关于迭代器的练习题
- 以下哪一项最好地描述了为什么迭代器被描述为惰性?
- 以下两个代码片段在语义上是否等效?
- 以下程序能否通过编译?若能,输出是?
Rust 学习笔记:关于迭代器的练习题
参考视频:
- https://www.bilibili.com/video/BV1kiNzeJE4t
以下哪一项最好地描述了为什么迭代器被描述为惰性?
A. 迭代器在调用提取元素的方法之前没有任何效果
B. 迭代器只会迭代给定数量的项目
C. 迭代器会创建它迭代的每个项目的副本
D. 迭代器获取它正在迭代的项目序列的所有权
答:A。
以下两个代码片段在语义上是否等效?
while let Some(x) = iter.next() {f(x);
}
for x in iter {f(x);
}
答:等效。
以下程序能否通过编译?若能,输出是?
fn main() {let v = vec![1, 2, 3, 4];let a: Vec<_> = v.iter().filter(|x: &&i32| *x % 2 == 0).map(|x: &i32| x * 2).collect();let b: Vec<_> = v.iter().map(|x: &i32| x * 2).filter(|x: &i32| x % 2 == 0).collect();println!("{} {}", a[0], b[0]);
}
答:可以通过编译。输出:4 2。