考虑一下:
loop {
let data = match something() {
Err(err) => {
warn!("An error: {}; skipped.", err);
continue;
},
Ok(x) => x
};
let data2 = match something_else() {
Err(err) => {
warn!("An error: {}; skipped.", err);
continue;
},
Ok(x) => x
};
// and so on
}
如果我不需要将ok值指定为data
,我会使用if let Err(err) = something()
,但是有没有一个快捷方式可以避免在这个典型场景中复制粘贴Err/ok分支?比如if let
,它也会返回ok值.