Expand description
else
表达式是可选的。如果未提供其他表达式,则假定计算结果为单元类型 ()
。
else
块求值的类型必须与 if
块求值的类型兼容。
如下所示,else
后面必须是: if
,if let
或块 {}
,它将返回该表达式的值。
let result = if true == false {
"oh no"
} else if "something" == "other thing" {
"oh dear"
} else if let Some(200) = "blarg".parse::<i32>().ok() {
"uh oh"
} else {
println!("Sneaky side effect.");
"phew, nothing's broken"
};
Run这是另一个示例,但是在这里我们不尝试返回表达式:
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");
}
Run上面是 still 的表达式,但它将始终为 ()
。
跟随 if
表达式的 else
块的数量可能没有限制,但是,如果有多个,则最好使用 match
表达式。
在 Rust 书 中阅读更多关于控制流的信息。