此页内容

约 268 字小于 1 分钟

2022-06-03

语句和表达式

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
}