Rust入门-03-函数
函数
-
fn关键字声明函数 -
函数和变量名使用下划线命名法(snake case)
- 所有字母小写
- 下划线分隔单词
fn another_function() { println!("Another function."); } -
函数可以在
main函数之后,也可以定义在main之前(与其他语言不同)
参数
-
声明函数时必须要声明每个参数的类型
fn another_function(x: i32) { println!("The value of x is: {}", x); } -
当一个函数有多个参数时,使用逗号分隔
fn print_labeled_measurement(value: i32, unit_label: char) { println!("The measurement is: {}{}", value, unit_label); }
语句和表达式(expression-based)
语句(statement)是执行一些操作但不返回值的指令
-
函数定义就是一个语句
-
语句不会返回值
- 不能把
let语句赋值给另一个变量
fn main() { let x = (let y = 6); //let y = 6 不会返回值 } - 不能把
该程序编译会发生错误
- 所以在rust中不可以写
x = y = 6
表达式(expression)计算并产生一个值
-
表达式会返回值
-
表达式的结尾没有分号
- 加上分号就变成了语句
-
函数调用是一个表达式
-
宏调用是一个表达式
-
创建新作用域的大括号也是一个表达式
fn main() { let y = { //该代码块(大括号包围没有let y = )就是一个表达式 let x = 3; x + 1 //末尾没有分号 }; println!("The value of y is: {}", y); }输出结果为
The value of y is: 4
带有返回值的函数
-
使用箭头
->后声明返回值类型fn five() -> i32 { //该函数返回值类型被指定为 i32 5 } //该函数中只有数字5本身,但在Rust中是一个完全有效的函数fn plus_one(x: i32) -> i32 { x + 1 //末尾不加分号 } -
函数的返回值等同于函数体最后一个表达式的值
- 使用
return关键字和指定值,可从函数中提前返回 - 大部分函数隐式的返回最后的表达式
- 使用
-
关于
main函数
fn main () {}
main函数的返回值类型是
(),它是一个特殊的元组——没有元素的元组,称为unit,它表示一个函数没有任何信息需要返回。
()类型,其实类似于C/C++、Java、C#中的void类型。

浙公网安备 33010602011771号