Keyword else

source ·
Expand description

if 条件评估为 false 时要评估的表达式。

else 表达式是可选的。如果未提供其他表达式,则假定计算结果为单元类型 ()

else 块求值的类型必须与 if 块求值的类型兼容。

如下所示,else 后面必须是: ifif 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 书 中阅读更多关于控制流的信息。