Keyword for[−][src]
Expand description
使用 in 进行迭代,使用 impl 或 更高等级的 trait bounds (for<'a>) 实现 trait。
for 关键字在许多语法位置中使用:
for用于 for-in 循环 (见下文)。- 在
impl Trait for Type中实现 traits 时使用for(有关更多信息,请参见impl)。 for也与for<'a> &'a T: PartialEq<i32>一样用于 高级 trait 限定。
for-in 循环,或更确切地说,是迭代器循环,是 Rust 中一种常见实践上的简单语法糖,它遍历所有实现 IntoIterator 的对象,直到 .into_iter() 返回的迭代器返回 None (或循环体使用 break)。
for i in 0..5 {
println!("{}", i * 2);
}
for i in std::iter::repeat(5) {
println!("turns out {} never stops being 5", i);
break; // 否则将永远循环
}
'outer: for x in 5..50 {
for y in 0..10 {
if x == y {
break 'outer;
}
}
}Run如上面的示例所示,可以使用与生命周期相似的语法 (仅在视觉上相似,实际上完全不同) 来标记 for 循环 (以及所有其他循环)。给 break 提供相同的标记会中断标记的循环,这对于内部循环很有用。
绝对不是 goto。
for 循环如下图所示展开:
for loop_variable in iterator {
code()
}Run{
let result = match IntoIterator::into_iter(iterator) {
mut iter => loop {
match iter.next() {
None => break,
Some(loop_variable) => { code(); },
};
},
};
result
}Run有关所显示功能的更多详细信息,请参见 IntoIterator 文档。