Keyword if[−][src]
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"); }Run
if
关键字在 Rust 中的另一个位置使用,即作为样式匹配自身的一部分,从而允许使用诸如 Some(x) if x > 200
的样式。