rust - 为数组赋值但值不变?
问题描述
我有以下代码:
if (x % 2 == 0) ^ (y % 2 == 1) ^ (z % 2 == 0) {
grid_box.weights[x][y][x] = 1.0;
assert_eq!(grid_box.weights[x][y][x], 1.0);
} else {
grid_box.weights[x][y][z] = 0.0;
assert_eq!(grid_box.weights[x][y][x], 0.0); // Assertion failed, 1.0 != 0.0
}
然而,即使我在前一行中将网格位置分配为零,第二个断言也失败了。进一步的实验表明,网格中的先前值似乎对新值应该是什么产生了影响,即使赋值应该完全覆盖该值。
解决方案
您有一个错字,您分配给grid_box.weights[x][y][z]
并从中读取grid_box.weights[x][y][x]
。替换z
为x
。
推荐阅读
- c# - 我在 azure 中部署的 Web 应用程序需要指向一个静态 IP 地址
- tsql - 使用 T-SQL 在具有多数据的单个脚本中将数据插入到 Master 和 Detail 表
- db2 - SQL1092N 请求的命令或操作失败,因为用户标识没有执行请求的命令或操作的权限
- ios - 需要帮助完成我在状态机上的第一次测试计时器应用程序尝试 - 我想我仍然有转换错误
- reactjs - 在没有 ES6 或 Webpack 的情况下使用 CDN 链接反应 redux
- node.js - 当回调未作为参数传递时,如何使用 sinon 在 node.js 中对回调进行单元测试?
- automation - QTP 11 与 Flex 3.0
- java - 'ol 错误:无法找到或加载主类 os x
- php - FETCH_ASSOC 仅显示 1 个数据和循环无限 PHP
- gammu - 打开设备时出错,您没有权限(gammu 安装后)