函数
函数定义
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
语句包括:
- 变量声明:
let x = 5; - 函数定义:
fn foo() {} - 表达式 + 分号:
5 + 6;
表达式包括:
- 数值:
5 + 6 - 函数调用:
add(1, 2) - 块表达式:
{ let x = 5; x + 1 } if条件表达式match模式匹配loop循环表达式
关键区别: 表达式末尾不加分号,加了分号就变成了语句,返回值为 ().
rust
// 块表达式,返回 6
let y = {
let x = 5;
x + 1 // 无分号,是表达式
};
// 函数调用作为表达式
let result = if condition { 10 } else { 20 };实用调试宏
rust
todo!() // 标记未完成的代码,运行时 panic,编译不报错
unimplemented!() // 标记故意不实现的功能,运行时 panic
unreachable!() // 标记理论上不可能到达的分支,运行时若到达则 panic