天天看点

Rust语法之if语句

     Rust中if并不复杂,但与传统系统语言相比,更像动态类型语言中的if。我们来介绍一下,让读者可以理解细微差异。

     if是一种一般概念的具体形式:分支。这个名称来自树的分支:一个决策点,根据所做的选择,可以选择不同的路径。

就 if 而言,一个选择指出两条路:

let x = 5;

     if x == 5 {
         println!("x is five!");
     }
           

     如果改变x的值,这一行就不会输出。更具体来说,如果 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始终会导致空值(())。

继续阅读