我想比较数组中的每个元素和同一个数组中的其他元素,如果满足某些条件,两个元素的属性都需要更新。在我所知道的任何其他编程语言中,我会用两个嵌套迭代器来实现这一点。
在Rust中,嵌套使用“iter_mut”会导致错误“cannot borrow balls
as mutable more than once at a time”。
这是我的“球”的例子:
struct Ball {
pub x: f64,
pub y: f64,
}
let mut balls: Vec<Ball> = vec![Ball {x: 10.0, y:10.0}, Ball {x: 10.0, y:10.0}];
for ball in balls.iter_mut() {
for ball2 in balls.iter_mut() { //this second iterator raises the error
if ball.x == ball2.x { //any test
ball.x = 0.5; //any value change
ball2.x = 0.5;//any value change
}
}
}
字符串
在Rust中实现这一点的最佳方法是什么?
1条答案
按热度按时间vltsax251#
在Rust中实现这一点的最佳方法是什么?
最简单的方法是使用索引:
字符串
Playground