在结构中改变数组的最佳方法?
Best Way To Mutate Arrays in Structs?
我有如下结构
struct Foo {
x: [i8;64]
y: i8
}
我想在 Foo
中更新数组 x
中的一个值,当我通过一个函数传递它时。我能想到的最佳解决方案是制作 x
的可变副本,然后更新该副本,然后使用新数组创建新的 Foo
。
fn updateFoo(myFoo: Foo, index: usize, newvalue: i8) -> Foo {
let mut newX = myFoo.x;
newX[index] = newvalue;
Foo {
x: newX,
y: myFoo.y,
}
}
这是一种在 Rust 中的结构内改变数组的有效且惯用的方法吗? 我有哪些替代方法可以在 Rust 中更新数组内的值?谢谢你的帮助。
您也可以将可变引用传递给 Foo:
struct Foo {
x: [i8; 64],
y: i8,
}
fn updateFoo(myFoo: &mut Foo, index: usize, newvalue: i8) {
myFoo.x[index] = newvalue;
}
我有如下结构
struct Foo {
x: [i8;64]
y: i8
}
我想在 Foo
中更新数组 x
中的一个值,当我通过一个函数传递它时。我能想到的最佳解决方案是制作 x
的可变副本,然后更新该副本,然后使用新数组创建新的 Foo
。
fn updateFoo(myFoo: Foo, index: usize, newvalue: i8) -> Foo {
let mut newX = myFoo.x;
newX[index] = newvalue;
Foo {
x: newX,
y: myFoo.y,
}
}
这是一种在 Rust 中的结构内改变数组的有效且惯用的方法吗? 我有哪些替代方法可以在 Rust 中更新数组内的值?谢谢你的帮助。
您也可以将可变引用传递给 Foo:
struct Foo {
x: [i8; 64],
y: i8,
}
fn updateFoo(myFoo: &mut Foo, index: usize, newvalue: i8) {
myFoo.x[index] = newvalue;
}