3
這裏是什麼,我試圖做一個例子:如何遍歷切片映射切片?
for &xs in &[&[1, 2, 3].iter().map(|x| x + 1)] {
for &x in xs {
println!("{}", x);
}
}
這給了我下面的錯誤:
error[E0277]: the trait bound `&std::iter::Map<std::slice::Iter<'_, {integer}>, [[email protected]/main.rs:2:40: 2:49]>: std::iter::Iterator` is not satisfied
--> src/main.rs:3:9
|
3 |/ for &x in xs {
4 | | println!("{}", x);
5 | | }
| |_________^ the trait `std::iter::Iterator` is not implemented for `&std::iter::Map<std::slice::Iter<'_, {integer}>, [[email protected]/main.rs:2:40: 2:49]>`
|
= note: `&std::iter::Map<std::slice::Iter<'_, {integer}>, [[email protected]/main.rs:2:40: 2:49]>` is not an iterator; maybe try calling `.iter()` or a similar method
= note: required by `std::iter::IntoIterator::into_iter`
...這是非常令人驚訝的,因爲我清楚地看到how std::Iter::Map
implements Iterator
。
它爲什麼會抱怨以及如何遍歷片映射切片?
謝謝。雖然這不是直接適用於我想要做的事情,但它幫助我將自己的頭圍繞着Rust的角度圍繞着生命週期和所有權。 – Fixpoint