在Rust中为for循环命名中断

Are*_*lis 32 for-loop break rust

有没有办法for在Rust中使用嵌套循环并从内部循环中打破外部循环,例如在Java中可以做到的方式?我知道Rust支持命名中断,loop但我似乎无法找到有关相同的信息for.

Lil*_*ard 56

是.它使用与生命周期相同的语法.

fn main() {
    'outer: for x in 0..5 {
        'inner: for y in 0..5 {
            println!("{},{}", x, y);
            if y == 3 {
                break 'outer;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅循环标签文档.

  • @NoeticJun在[无限循环](http://static.rust-lang.org/doc/0.9/rust.html#infinite-loops)一节中提到它(后面是Break表达式).虽然它有点令人困惑,因为示例中断是`break foo`而不是`break'foo`.它还使用"标签"和"生命周期"来指代相同的事物.它应该被重写. (3认同)