Rust开发之——函数(7)

一 概述

  • 函数的定义与调用
  • 函数参数
  • 语句与表达式的区别
  • 函数返回值

二 函数的定义与调用

2.1 函数的定义

1
2
3
4
5
6
7
8
9
10
11
12
1、定义规范
-以fn关键字开头,后面跟函数名
-遵循蛇形命名法(小写字母 + 下划线,如another_function)

2、示例
fn main() {
println!("Hello, world!");
another_function(); // 调用函数
}
fn another_function() {
println!("Another function.");
}

2.2 函数的调用

1
直接使用函数名加括号调用,函数定义顺序不影响调用(可定义在main前后)

三 函数参数

3.1 参数声明

1
2
3
4
5
6
7
8
1、注意事项
-需在函数签名中明确参数类型
-多个参数用逗号分隔

2、示例
fn another_function(x: i32, y: i32) {
println!("x: {}, y: {}", x, y);
}

3.2 参数传递

1
调用时按顺序传递对应类型的实参,如another_function(5, 6)

四 语句与表达式的区别

4.1 语句(Statements)

1
2
执行操作但不返回值,如变量声明let y = 6;、函数定义等。
特点:以分号结尾,不能作为值赋值给其他变量(如let x = (let y = 6);会报错)

4.2 表达式(Expressions)

1
2
计算后产生值,如数学运算5 + 6、函数调用、代码块{}等。
特点:结尾无分号,代码块的值为最后一行表达式的结果(如{ let x=3; x+1 }的值为 4)

五 函数返回值

5.1 返回值类型声明

1
2
用箭头->指定返回值类型,如fn five() -> i32 { 5 }。
函数返回值为最后一个表达式的值(隐式返回),无需return关键字

5.2 显式返回(return)

1
可提前返回值,如return x + 1;,但多数场景推荐隐式返回。

5.3 错误场景

1
2
若表达式以分号结尾(变为语句),函数会返回空元组(),
与声明的返回类型冲突时报错(如fn plus_one() -> i32 { x+1; }会提示类型不匹配)。

六 参考

  • Rust中文官网——函数