是否可以通过迭代器获得对数组元素的写访问权限?:
#[derive(Default)]
struct Struct {
field: i32,
}
fn main() {
let mut array: [Struct; 2] = [Default::default(), Default::default()];
array[0].field = 2;
array[1].field = 3;
foo(&mut array);
println!("[0]: {}", array[0].field);
println!("[1]: {}", array[1].field);
}
fn foo(array: &mut [Struct]) {
for (i, a) in array.iter().enumerate() {
if a.field > 2 {
println!("Setting [{}] to zero.", i);
a.field = 0;
}
}
}
这是解决问题的惯用方法吗?