文档似乎表明将两个迭代器压缩在一起后,您可以将它们变成一个数组,.from_iterator()
但是当我尝试这样做时,锈报告:
std::iter::Zip<std::vec::VecIterator<,int>,std::vec::VecIterator<,int>>` does not implement any method in scope named `from_iterator`
有人可以提供将 Zip 转换为数组的 rust 0.8 的工作示例代码吗?
那将是FromIterator::from_iterator(iterator)
。
更常用的接口是Iterator.collect
(链接到主文档,但在0.8和0.9中相同),您将调用iterator.collect()
.
Rust 0.8 已经过时了,你应该升级到 0.9。以下适用于 0.9:
let a = ~[1,12,3,67];
let b = ~[56,74,13,2];
let c: ~[(&int,&int)] = a.iter().zip(b.iter()).collect();
println!("{:?}", c);
结果:
~[(&1, &56), (&12, &74), (&3, &13), (&67, &2)]