2 个版本
0.1.1 | 2022 年 2 月 1 日 |
---|---|
0.1.0 | 2022 年 2 月 1 日 |
#12 在 #continue
8KB
108 行
利用 Try ?
操作符扩展您的可能性
你是否曾经发现自己编写了一个基于某些条件的函数可能会提前返回?
fn my_function() {
// ...
if condition_a {
return;
}
// ...
if condition_b {
return;
}
// ...
}
这看起来并不 Rust,对吧?这个包提供了一个扩展特质,可以将 bool
转换为 ControlFlow
,并利用强大的 ?
操作符来消除这些检查
use core::ops::ControlFlow;
use try_more::BoolFlow;
fn my_function() -> ControlFlow<()> {
// ...
BoolFlow::r#break(condition_a)?;
// ...
condition_b.r#break()?;
// ...
}
除了 continue
和 break
之外,还有其他方法可以控制传递给 Break
变体的值。