函数在rust中是普遍存在的,基于之前的文章和一些其他编程语言习惯,rust中函数的基本形式为:
fn <函数名> ( <参数> ) <函数体>
其中函数名称的命名风格是小写字母以下划线分割。
注意:Rust不在乎您在何处定义函数,只需在某个地方定义它们即可,也就是说函数定义和调用不存在先后问题。
函数参数
- Rust 中定义函数如果需要具备参数必须声明参数名称和类型:
fn another_function(x: i32, y: i32) {
println!("x 的值为 : {}", x);
println!("y 的值为 : {}", y);
}
函数体语句和表达式
- Rust 函数体由一系列可以以表达式(Expression)结尾的语句(Statement)组成
- 语句是执行某些操作且没有返回值的步骤
- 表达式有计算步骤且有返回值
- Rust 中可以在一个用 {} 包括的块里编写一个较为复杂的表达式:
fn main() {
let x = 5;
let y = {
let x = 3;
x + 1
};
println!("x 的值为 : {}", x); // 5
println!("y 的值为 : {}", y); // 4
}
最后一个步骤是表达式,此表达式的结果值是整个表达式块所代表的值。这种表达式块叫做函数体表达式。
注:x + 1 之后没有分号,否则它将变成一条语句!
注:函数体表达式并不能等同于函数体,它不能使用 return 关键字。
返回值
Rust 函数声明返回值类型的方式:在参数声明之后用 -> 来声明函数返回值的类型(不是 : )。
在函数体中,随时都可以以 return 关键字结束函数运行并返回一个类型合适的值。
Rust 不支持自动返回值类型判断!如果没有明确声明函数返回值的类型,函数将被认为是"纯过程",不允许产生返回值,return 后面不能有返回值表达式。