Expand description
如果条件成立,则评估一个块。
if
对于大多数程序员来说是一个熟悉的结构,也是您经常在代码中进行逻辑运算的主要方式。
但是,与大多数语言不同,if
块也可以充当表达式。
if 1 == 2 {
println!("whoops, mathematics broke");
} else {
println!("everything's fine!");
}
let greeting = if rude {
"sup nerd."
} else {
"hello, friend!"
};
if let Ok(x) = "123".parse::<i32>() {
println!("{} double that and you get {}!", greeting, x * 2);
}
Run上面显示的是 if
块的三种典型形式。
首先是带有多种 else
块的多种语言中常见的事物。
第二种使用 if
作为表达式,仅当所有分支都返回相同类型时才有可能。
if
表达式可以在您期望的任何地方使用。
第三种 if
块是 if let
块,其行为类似于使用 match
表达式:
if let Some(x) = Some(123) {
// code
} else {
// 其他的东西
}
match Some(123) {
Some(x) => {
// code
},
_ => {
// 其他的东西
},
}
Run每种 if
表达式都可以根据需要进行混合和匹配。
if true == false {
println!("oh no");
} else if "something" == "other thing" {
println!("oh dear");
} else if let Some(200) = "blarg".parse::<i32>().ok() {
println!("uh oh");
} else {
println!("phew, nothing's broken");
}
Runif
关键字在 Rust 中的另一个位置使用,即作为样式匹配自身的一部分,从而允许使用诸如 Some(x) if x > 200
的样式。