由于您不能简单地执行以下操作:
if option.is_some() && option == 1 {...}
Run Code Online (Sandbox Code Playgroud)
因为如果option.is_some() == false第二次比较会出错。
一般认为做这种事情的最佳方法是什么?
(我现在做正确的:if option.is_some() { if option == 1 {...} })
模式匹配是正确的解决方案,但如果您想要bool,则可以使用相等运算符:
fn main() {
let maybe_int = Some(123);
let contains_123: bool = maybe_int == Some(123);
assert!(contains_123);
}
Run Code Online (Sandbox Code Playgroud)
模式匹配是一个功能强大的工具,请使用它!代替常规if,使用if let:
if let Some(1) = option {
// --snip--
}
Run Code Online (Sandbox Code Playgroud)
有关模式匹配的更多信息,请查阅The Rust Reference。
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |