什么是在封闭内使用continue的Rust方式?

Yur*_*ish 2 rust

这是不可能的,但非常需要:

loop {
    something().unwrap_or_else(|err| {
        warn!("Something bad happened: {}", err);
        continue;
    });

    // other stuff
}
Run Code Online (Sandbox Code Playgroud)

Rust的解决方法是什么?

mca*_*ton 7

unwrap_or_else只是match方法调用链中常用的便捷方法.由于这不是这种情况,你可以简单地使用一个match,因为你似乎只对Err案例感兴趣,你也可以使用if let:

loop {
    if let Err(err) = something() {
        warn!("Something bad happened: {}", err);
        continue;
    }

    // other stuff
}
Run Code Online (Sandbox Code Playgroud)