Rust 将值赋给数组,但值不';你不会变吗?

Rust 将值赋给数组,但值不';你不会变吗?,rust,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 fa

我有以下代码:

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
}

然而,第二个断言失败了,即使我在前一行中将网格位置指定为零。进一步的实验表明,网格中的前一个值似乎对新值应该是什么产生了影响,即使赋值应该完全覆盖该值。

如果输入错误,您将赋值给
网格框。权重[x][y][z]
并从
网格框读取。权重[x][y][x]
。将
z
替换为
x

每个人都会这样!“我假设这是rust编译器中的一个bug”永远不要假设初学者会在编译器中发现bug。我已经盯着它看了很长时间,所以我“认为”我已经用尽了所有其他选项。无论如何,我现在投票结束我自己的问题。