codecamp

for 循环

for 循环

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 语言的开发者来说不仅是是复杂的而且容易出错。

if
while 循环
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }