loop 可以 break 并携带返回值

Minimum Rust version: 1.19

loop 可以 break 并携带返回值

1. // old code
2. let x;

4. loop {
5. x = 7;
6. break;
7. }

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

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

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