Rust 中的 if 和动态语言中的 if 有点类似,而且 if 后面的表达式不需要小括号:

let x = 5;

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

if 后面的表达式如果返回 true 就执行大括号中的代码,返回 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 :(");
}

Rust 中的 if 还可以这样用:

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 的话返回值始终是 ()(空元组)。

参考链接:https://doc.rust-lang.org/stable/book/if.html