我有以下代码:
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
}
然而,即使我在前一行中将网格位置分配为零,第二个断言也失败了。进一步的实验表明,网格中的先前值似乎对新值应该是什么产生了影响,即使赋值应该完全覆盖该值。