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!("{}",res);
运行结果如下:
i is odd
99999
但是,我们要注意,if..else的return type必须一致。如果不一致,那就会有compiling err

本文探讨了Rust中花括号作为返回值的特性,解释了如何使用花括号来返回函数的最后一个表达式的值。同时,强调了返回类型一致性的重要性,通过示例代码说明了当同一作用域内存在多个有值表达式时会导致编译错误,并提供了修正方法。
最低0.47元/天 解锁文章
4196

被折叠的 条评论
为什么被折叠?



