向量(以及其他集合类型)是否可以准确地被称为Iterator
?
例如,我可以按照以下方式循环遍历向量,因为它实现了Iterator
trait(就我所知):
let v = vec![1, 2, 3, 4, 5];
for x in &v {
println!("{}", x);
}
然而,如果我想使用属于Iterator
特征的函数(例如fold
、map
或filter
),为什么必须先调用iter()
来处理那个向量?
我想过的另一个想法是,也许一个向量可以转换成一个Iterator
,在这种情况下,上述语法更有意义。
for x in &v
和for x in v.iter()
的内容,这两种方式都是有效的。但我还不熟悉 Rust,所以无法解释或总结它们! - Peter Cordes