目录
思维导图
1. 函数的基本概念
1.1 函数的定义
2. 参数的使用
2.1 单个参数的示例
2.2 多个参数的示例
3. 语句与表达式
3.1 语句与表达式的区别
3.2 示例
4. 带返回值的函数
4.1 返回值的示例
4.2 返回值与表达式
5. 错误处理
5.1 错误示例
思维导图
1. 函数的基本概念
Rust语言中,函数是代码中常见的构造,主要用于组织和复用代码。main
函数是大多数程序的入口点,并引入了fn
关键字用于定义新函数。
1.1 函数的定义
- 定义方式:通过
fn
关键字后接函数名和一对括号来定义函数。 - 代码示例:
fn main() {println!("Hello, world!");another_function(); } fn your_function() {println!("Your function."); }
- 调用函数:可以在
main
函数内调用其他已定义的函数,如your_function
。
2. 参数的使用
Rust允许函数定义参数,参数是函数签名的特殊变量,允许向函数传递具体的值。
2.1 单个参数的示例
- 代码示例:
fn main() {your_function(5); } fn your_function(x: i32) {println!("The value of x is: {x}"); }
- 输出:运行后将打印
The value of x is: 5
。
2.2 多个参数的示例
- 代码示例:
fn main() {print_multiparameter(5, 'h'); } fn print_multiparameter(value: i32, unit_label: char) {println!("The result is: {value}{unit_label}"); }
- 输出:运行后将打印
The result is: 5h
。
3. 语句与表达式
Rust语言中,函数体由一系列语句组成,这些语句可以选择性地以表达式结束。
3.1 语句与表达式的区别
- 语句:执行某个操作但不返回值,例如变量声明。
- 表达式:计算并返回值,例如数学运算
5 + 6
。
3.2 示例
- 代码示例:
fn main() {let y = {let x = 3;x + 1};println!("The value of y is: {y}"); }
- 输出:将打印
The value of y is: 4
。
4. 带返回值的函数
函数可以返回值,返回值的类型需要在箭头->
后声明。
4.1 返回值的示例
- 代码示例:
fn num() -> i32 {6 } fn main() {let x = num();println!("The value of x is: {x}"); }
- 输出:运行后将打印
The value of x is: 6
。
4.2 返回值与表达式
- 重要性:函数的返回值是函数体内最后一个表达式的值。
- 示例:
fn add_one(x: i32) -> i32 {x + 1 }
- 注意:如果在返回值的表达式后加上分号,将导致错误,因为分号会将表达式变为语句,不再返回值。
5. 错误处理
若在函数中不正确地使用分号,会导致类型不匹配的错误,编译器会给出相应的错误信息以帮助调试。
5.1 错误示例
- 代码示例:
fn add_one(x: i32) -> i32 {x + 1; // 错误:这里不返回值 }
- 错误信息:编译器会提示
mismatched types,
即类型不匹配,因为函数声明期望返回i32
类型,但实际返回的是()
,即unit
类型。
tips:
- 蛇形命名法;
- 必须声明参数类型
- 有返回值时,必须是表达式。