Keyword else[−][src]
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 书 中阅读更多关于控制流的信息。