5.6.for循环

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表达式取一个开始和结束的位置,然后给出一个含有这之间值得迭代器。当然它不包括上限值,所以我们的循环会打印09,而不是到10

Rust没有使用“C语言风格”的for循环是有意为之的。手动控制要循环的每个元素是复杂且易于出错的,甚至对于有经验的C语言选手。

文章导航