loop 可以 break 并携带返回值

Minimum Rust version: 1.19

loop 可以 break 并携带返回值

  1. // old code
  2. let x;
  3. loop {
  4. x = 7;
  5. break;
  6. }
  7. // new code
  8. let x = loop { break 7; };

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

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