试图检查2d向量并注意到一些我无法找到解释的奇怪行为。
fn main() {
let mut main_loop = vec![];
let mut x = 0;
let board_x = 10;
let mut y = 0;
let board_y = 10;
while y < board_y {
let mut row = vec![];
while x < board_x {
let v = random::<bool>();
println!("x:{}", x);
row.push(v);
x = x + 1;
}
println!("y:{}", y);
main_loop.push(row);
y = y + 1;
}
}
仅打印
x:0
x:1
x:2
x:3
x:4
x:5
x:6
x:7
x:8
x:9
y:0
y:1
y:2
y:3
y:4
y:5
y:6
y:7
y:8
y:9
这不是应该将x:1-x:10打印10次吗?同样更奇怪的是,当我使用嵌套的for循环为每行循环回向量时,它在退出之前先计数出60个索引。我想念什么?
答案 0 :(得分:3)
这不是应该将x:1-x:10打印10次吗?
为什么会这样?内循环完成后,您再也不会将x
设为零。
除此之外,这种迭代还应该通过for
循环来完成:
for x in 0..10 { ... }
[...]当我使用嵌套的for循环为每行循环回向量时,它在退出之前先计数出60个索引。
我不知道;您没有发布该代码,而且我也看不出有任何理由这样做。