loop 可以 break 并携带返回值

Minimum Rust version: 1.19

loop 可以 break 并携带返回值


#![allow(unused_variables)]
fn main() {
// old code
let x;

loop {
    x = 7;
    break;
}

// new code
let x = loop { break 7; };
}

Rust 传统上将自己定位为“面向表达式的语言”,也就是说,大多数事物都是评估价值而不是陈述表达。 loop 以这种方式突然变得奇怪,因为它之前是一个声明。

现在,这只适用于 loop,而不适用于 whilefor。 目前尚不清楚,但我们可能会将此添加到未来。