5.5.If语句

最后更新于:2022-04-01 00:43:36

Rust的If并不是特别复杂,不过你会发现它更像动态类型语言而不是更传统的系统语言。所以让我来说说它,以便你能把握这些细节。 If语句是_分支_这个更加宽泛的概念的一个特定形式。它的名字来源于树的树枝:一个选择点,根据选择的不同,将会使用不同的路径。 在If语句中,这里有一个选择导致了两个路径: ~~~ let x = 5; if x == 5 { println!("x is five!"); } ~~~ 如果在什么别的地方更改了x的值(你确定不加mut可以吗。。。),这一行将不会输出。更具体一点,如果`if`后面的表达式的值为`true`,这个代码块将被执行。为`false`则不被执行。 如果你想什么在值为`false`是发生,使用`else`: ~~~ let x = 5; if x == 5 { println!("x is five!"); } else { println!("x is not five :("); } ~~~ 如果不止一种情况,使用`else if`: ~~~ let x = 5; if x == 5 { println!("x is five!"); } else if x == 6 { println!("x is six!"); } else { println!("x is not five or six :("); } ~~~ 这些都是非常标准的情况。然而你也可以这么写: ~~~ let x = 5; let y = if x == 5 { 10 } else { 15 }; // y: i32 ~~~ 你可以(或许也应该)这么写: ~~~ let x = 5; let y = if x == 5 { 10 } else { 15 }; // y: i32 ~~~ 这可以工作是因为`if`是一个表达式。表达式的值是任何被选择的分支的最后一个表达式的值。一个没有`else`的`if`总是返回`()`作为返回值。
';