arrays - 在结构中改变数组的最佳方法?
问题描述
我有一个如下结构
struct Foo {
x: [i8;64]
y: i8
}
当我通过函数传递数组时,我想更新数组x
中的值。Foo
我能想出的最佳解决方案是制作一个可变副本,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 中数组内的值?谢谢您的帮助。
解决方案
您也可以只将可变 ref 传递给 Foo:
struct Foo {
x: [i8; 64],
y: i8,
}
fn updateFoo(myFoo: &mut Foo, index: usize, newvalue: i8) {
myFoo.x[index] = newvalue;
}
推荐阅读
- r - 在 R 中有效的 data.table 中更新一列两次
- laravel - Laravel,根据类别选择更改表单字段
- sql-server - SQL Server UPDATE 基于上一个日期
- python - 从 HTML 页面抓取后的 CSV 问题
- java - 无法使用 OjAlgo 执行具有正确定对称矩阵的广义特征值问题 - 我在做什么错?
- amazon-s3 - 使用Snowflake自带的原生stage相比有S3作为stage area有什么缺点
- linux - Unison 失败:未捕获的异常失败(“input_value:格式错误的消息”)
- php - 未定义索引:第30行/storage/ssd1/900/12273900/public_html/upload_image.php中的 faceId
- r - R - 将 Dataframe 子集到所有可能的组合中
- facebook - 在 Spark AR Studio 中使用本机 UI 选择器在双语过滤器中切换语言