-2

我有以下代码:

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
}

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

4

1 回答 1

3

您有一个错字,您分配给grid_box.weights[x][y][z]并从中读取grid_box.weights[x][y][x]。替换zx

于 2020-07-21T09:36:01.103 回答