Yee*_*Yee 1 iterator loops functional-programming vector rust
不幸的是,以下内容不起作用:
let vecs: Vec<Vec<i32>> = get_vectors();
let result = vecs
.iter()
.iter()
.do_something()
.do_something_else() // etc
Run Code Online (Sandbox Code Playgroud)
编译错误:
error[E0599]: no method named `iter` found for type`std::slice::Iter<'_, std::vec::Vec<i32>>` in the current scope
--> src/main.rs:49:10
|
49 | .iter()
|
Run Code Online (Sandbox Code Playgroud)
我可以避免它
for row in vecs.iter() {
for column in row.iter() {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
我真的更喜欢这种.iter()方法.我怎么能实现这一目标?
用途flatten:
fn main() {
let v = vec![vec![1, 2], vec![3, 4], vec![5, 6]];
for i in v.iter().flatten() {
println!("{}", i); // 1 2 3 4 5 6
}
}
Run Code Online (Sandbox Code Playgroud)
flatten 将嵌套迭代器转换为一个迭代器.
| 归档时间: |
|
| 查看次数: |
535 次 |
| 最近记录: |