for
用来循环一个特定的次数。然而,Rust的for
循环与其它系统语言有些许不同。Rust的for
循环看起来并不像这个“C语言样式”的for
循环:
for (x = 0; x < 10; x++) {
printf( "%d
", x );
}
相反,它看起来像这个样子:
for x in 0..10 {
println!("{}", x); // x: i32
}
更抽象的形式:
for var in expression {
code
}
这个表达式是一个迭代器.迭代器返回一系列的元素。每个元素是循环中的一次重复。然后它的值与var
绑定,它在循环体中有效。每当循环体执行完后,我们从迭代器中取出下一个值,然后我们再重复一遍。当迭代器中不再有值时,for
循环结束。
在我们的例子中,0..10
表达式取一个开始和结束的位置,然后给出一个含有这之间值得迭代器。当然它不包括上限值,所以我们的循环会打印0
到9
,而不是到10
。
Rust没有使用“C语言风格”的for
循环是有意为之的。手动控制要循环的每个元素是复杂且易于出错的,甚至对于有经验的C语言选手。