Rust中if并不复杂,但与传统系统语言相比,更像动态类型语言中的if。我们来介绍一下,让读者可以理解细微差异。
if是一种一般概念的具体形式:分支。这个名称来自树的分支:这是一个决策点,根据所做的选择,可以选择不同的路径。
就if而言,一个选择指出两条路:
let x = 5i;
if x == 5i {
    println!("x is five!");
}
如果改变x的值,这一行就不会输出。更具体来说,如果if后面的表达式求值为true,那这个代码块就会执行。如果是false,就不会执行。
如果想让在false的情况下执行点东西,那就使用else:
let x = 5i;
if x == 5i {
    println!("x is five!");
} else {
    println!("x is not five!");
}
这是很标准的用法。不过,也可以这么做:
let x = 5i;
let y = if x == 5i {
    10i
} else {
    15i
}
上面能够(可能也应该)写成这样:
let x = 5i;
let y = if x == 5i { 10i } else { 15i }; // y: int
这里展示了Rust有两点有趣之处:Rust是基于表达式的语言,分号的作用与其他“基于大括号和表达式”的语言不同。表达式和分号是有关联的。
原文:http://blog.csdn.net/ucan23/article/details/45716555