Rust的花括号{}
能够承担返回值的作用,这是Rust语言比价有意思的一点。我研究了一下花括号的返回值,尤其是跟if..else
一起用的情况。在此做一下总结。
首先,Rust文档里面提到花括号具有evaluate last expression
的功能,也就是会计算并且返回最后一个expression
,比如2+3
,d
。因此,我们可以将函数的最后一句expression
当做返回值,例如:
fn test(i: i32) -> i32 {
println!("good, good"); //这是statement,不返回
let a = 666; //这是statement,不返回
i+3 //这是last expression,作为本函数的返回值
}
除此之外,if..else
的表达式也可以返回值,例如:
let i = 33;
let res = if i % 2 == 0 {
println!("i is even"); //这是statement,不返回
66666 //这是last expression,作为if的返回值
} else {
println!("i is odd"); //这是statement,不返回
99999 //这是last expression,作为else的返回值
};
println!("{}",