for 循环

欢马劈雪     最近更新时间:2020-08-04 05:37:59

226

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
}

上面的表达式是一个迭代器。迭代器提供一系列的元素。每个元素是迭代的一次循环。接着迭代器的值被绑定到变量 var,它是循环体控制循环的主体。一旦循环体执行结束,就从迭代器中获取下一个,接着执行下一次循环。当迭代器中没有更多的值可以获取的时候,for 循环结束。

在我们的示例中,0..10 是一个表达式,说明了开始和结束的位置,并给出一个迭代器遍历在这些值。上界是不包含在内的,所以我们的循环将打印 0 到9,而不是10。

Rust 故意没有按照 “C 风格” 设计 for 循环。因为手动的控制循环中每个元素对于熟练使用 C 语言的开发者来说不仅是是复杂的而且容易出错。