请看下面的代码:
fn main() {
let mut rows: Vec<Vec<u32>> = Vec::from([
Vec::from([1, 2, 3]),
Vec::from([4, 5, 6]),
Vec::from([7, 8, 9]),
]);
let res: Vec<Vec<u32>> = rows.iter().map(|arr| arr.reverse()).collect();
}
我有一个整数向量的向量,我想反转rows
中的每个数组。
使用此代码会产生类型注解问题,其中map
函数认为arr
的类型为&Vec<u32>
,而.reverse()
期望它的类型为Vec<u32>
。
我该怎么克服呢?
1条答案
按热度按时间q3qa4bjr1#
1.如果您不再需要原来的
rows
您可以使用
into_iter
:或者使用
iter_mut
就地执行:2.如果之后确实需要
rows
: