Skip to content

函数

函数定义

rust
fn add_num(x: i32, y: i32) -> i32 {
    x + y // 隐式返回,一定不能加分号,会变成语句
}
rust
// if 也是表达式,也能直接返回值
fn max(a: i32, b: i32) -> i32 {
    if a > b {
        a
    } else {
        b
    }
}

函数定义要点:

  • main 函数是程序入口点
  • 使用 fn 关键字声明新函数
  • 必须声明每个参数的类型和返回值类型
  • 函数默认返回 ()
  • 遵循 snake_case 命名规范(全小写,下划线分隔)
  • 函数返回值在 -> 后声明其类型
  • 函数返回值等同于函数体最后一个表达式的值
  • 使用 return 关键字可提前返回指定值

语句和表达式

  • 语句(Statements)是执行一些操作但不返回值的指令,语句的值是 ()
  • 表达式(Expressions)计算并产生一个值

Rust 中不用分号默认代表是返回一个表达式,也就是默认调用 return

语句包括:

  1. 变量声明: let x = 5;
  2. 函数定义: fn foo() {}
  3. 表达式 + 分号: 5 + 6;

表达式包括:

  1. 数值: 5 + 6
  2. 函数调用: add(1, 2)
  3. 块表达式: { let x = 5; x + 1 }
  4. if 条件表达式
  5. match 模式匹配
  6. loop 循环表达式

关键区别: 表达式末尾不加分号,加了分号就变成了语句,返回值为 ().

rust
// 块表达式,返回 6
let y = {
    let x = 5;
    x + 1  // 无分号,是表达式
};

// 函数调用作为表达式
let result = if condition { 10 } else { 20 };

实用调试宏

rust
todo!()           // 标记未完成的代码,运行时 panic,编译不报错
unimplemented!()  // 标记故意不实现的功能,运行时 panic
unreachable!()    // 标记理论上不可能到达的分支,运行时若到达则 panic

基于 MIT 协议发布