1. 格式

Rust 代码中函数定义的基本语法格式如下:

1
2
3
4
fn <function>(<parameters>) {
// 函数体
...
}

其中,fn 为函数声明关键字,<function> 为函数名,<parameters> 为参数列表,{} 用于指定函数体的开始和结束。和大多数编程语言一样,Rust 中 main 函数也是程序的入口点。

2. 参数

Rust 函数可以定义输入参数列表 <parameters>。在 <parameters> 中,必须声明每个参数的类型,多个参数用 , 分隔。

1
2
3
4
fn example(x: i32, y: i32) {
println!("The value of x is: {}", x);
println!("The value of y is: {}", y);
}

3. 函数体

函数体由一系列的语句和一个可选的结尾表达式构成。

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

在 Rust 中,语句的结尾有分号,表达式的结尾没有分号。如果在表达式的结尾加上分号,它就变成了语句,而语句不会返回值。

1
2
3
4
5
6
7
8
9
10
fn example() {
let x = 5;

let y = {
let x = 3; // 语句,不会返回值
x + 1 // 表达式,会返回值
};
// 因此 y 的值为 4
println!("The value of y is: {}", y);
}

4. 返回值

同其他语言一样,Rust 函数可以向调用它的代码返回值。Rust 中并不对返回值命名,但需要在箭头 -> 后声明它的类型。

  • 在 Rust 函数中,函数的返回值等同于函数最后一个表达式的值。
  • 使用 return 关键字和指定值,可以在函数中提前返回。
1
2
3
fn example() -> i32 {
5
}