条件表达式
if表达式
Rust的条件表达式和C语言差不多,但还是有不同的,在rust之中:
if expr{ //这是表达式1
}
if expr{ //这是表达式2
}
else if expr{ //这是表达式3
}
else if expr{ //这是表达式4
}
else{ //这是表达式5
}
if是表达式,而C语言中if是语句因此,rust的if表达式可以写成:
let x = 0;
let s = if x == 0{
10
}else{
20
};
//或者直接写成一行:
let p = 0;
let y = if p == 1 { 0 } else { -1 };
if let
要想理解if let表达式,首先要了解一下模式匹配match。
match类似于C语言的switch,但比其功能更强大,match的一般语法为:
let x = 5;
match x {
1 => {
println!("一")
},
2 => println!("二"),
3 => println!("三"),
4 => println!("四"),
5 => println!("五"),
_ => println!("其它数"),
}
实际上if let是一个match的简化用法,例:
let x = Some(5);
if let Some(y) = x {
println!("{}", y); // 这里输出为:5
}
let z = if let Some(y) = x {
y
}
else {
0
};
// z 值为 5
相当于:
let x = Some(5);
match x {
Some(y) => println!("{}", y),
None => ()
}
let z = match x {
Some(y) => y,
None => 0
};