语句和表达式
语句和表达式
Rust 中,函数体是由一系列 语句 组成,最后由一个 表达式 来返回值。
在 Rust 语言中,基于 语句(statement) 和 表达式(expression) 的方式是非常重要的,需要明确区分这两个概念。
fn main() {
let a = 1; // 语句
a + 2 // 表达式
}
语句
语句 指: 完成了某一个具体的操作,但不会产生返回值
示例:
let a = 1;
let v: Vec<i32> = Vec::new();
let (b, c) = ("Mark", false);
表达式
- 表达式 总是要返回值
- 表达式 不能包含 分号
表达式 例子:
- 调用 函数
- 调用 宏 一个表达
- 用花括号包括最终返回一个值的语句块
示例
fn main() {
let x = 1;
// { ... } 语句块是表达式
let y = {
let z = 2;
x * z
};
// add(y, 2) 是表达式
let s = add(y, 2);
// 用 if 语句块,类似于三元运算, 是表达式
let g = if s % 2 === 1 { "odd" } else { "even" };
}
fn add(a: i32, b:i32) -> i32 {
a + b
}