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

时间:2018-04-11 21:43:07

标签: rust

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

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

    // other stuff
}

Rust的解决方法是什么?

1 个答案:

答案 0 :(得分:7)

unwrap_or_else只是方法调用链中常用的match的便捷方法。由于此情况并非如此,您只需使用match,因为您似乎只对Err案例感兴趣,您也可以使用if let

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

    // other stuff
}