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