Keyword for[−][src]
Expand description
使用 in
进行迭代,使用 impl
或 higher-ranked trait bounds (for<'a>
) 实现 trait。
for
关键字在许多语法位置中使用:
for
用于循环中 (请参见下文)。for
如在impl Trait for Type
中实现 traits 时使用 (有关此信息,请参见impl
)。for
与for<'a> &'a T: PartialEq<i32>
一样,也用于 higher-ranked trait bounds。
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 { let next; match iter.next() { Some(val) => next = val, None => break, }; let loop_variable = next; let () = { code(); }; }, }; result }Run
有关所显示功能的更多详细信息,请参见 IntoIterator
文档。