系列文章目录
Rust 语言是一种高效、可靠的通用高级语言,效率可以媲美 C / C++ 。本系列文件记录博主自学Rust的过程。欢迎大家一同学习。
Rust学习入门–【1】引言
Rust学习入门–【2】Rust 开发环境配置
Rust学习入门–【3】Cargo介绍
Rust学习入门–【4】Rust 输出到命令行
Rust学习入门–【5】源代码文件结构简介
Rust学习入门–【6】Rust 基础语法
Rust学习入门–【7】Rust 数据类型
Rust学习入门–【8】复合类型
Rust学习入门–【9】Rust 函数
Rust学习入门–【10】Rust 条件语句
Rust学习入门–【11】Rust 运算符
Rust学习入门–【12】Rust 循环
Rust学习入门–【13】Rust 字符串(上)
Rust学习入门–【14】Rust 字符串(下)
Rust学习入门–【15】Rust 所有权
Rust学习入门–【16】Rust 借用所有权 Borrowing / 引用
Rust学习入门–【17】Rust Slice(切片)类型
Rust 函数
函数是一组一起执行一个任务的语句块。
每个 Rust 程序都至少有一个函数,即主函数 main()。
除了使用 Rust 核心和标准库提供的函数外,我们还可以定义自己的函数。
fn <函数名> ( <参数> ) {<函数体>}
实例
fn main() {
println!("Hello, world!");
my_function();
}
//自定义的函数
fn my_function() {
println!("Hello, Rust!");
}
注意:我们在源代码中的 main 函数之后定义了my_function。 Rust不在乎您在何处定义函数,只需在某个地方定义它们即可。
函数相关的数据
术语 | 说明 |
---|---|
函数定义 | 函数定义其实就是定义一个任务要以什么方式来完成 |
函数调用 | 函数只有被调用才会运行起来 |
函数返回值 | 函数在执行完成后可以返回一个值给它的调用者 |
函数参数 | 函数参数用于携带外部的值给函数内部的代码 |
函数定义
函数也不会凭空出现的,在使用一个函数前,我们必须先定义它。
定义函数时必须以 fn 关键字开头,fn 关键字是 function 的缩写。
函数内部必须包含函数要执行的具体代码,我们把这些代码称之为 函数体。
函数名称的命名规则和变量的命名规则一致。
实例
fn main() {
println!("调用my_function");
my_function(3, 4);
}
fn my_function(x: i32, y: i32) {
println!("x 的值为 : {}", x);
println!("y 的值为 : {}", y);
}
运行结果:
x 的值为 : 3
y 的值为 : 4
函数调用
为了运行一个函数首先必须调用它。函数不像普通的语句,写完了会自动执行,函数需要调用才会被执行。否则看起来就像是多余的代码。
让函数运行起来的过程我们称之为 函数调用。
如果函数定义了参数,那么在 函数调用 时必须传递指定类型的参数。
函数返回值
函数可以返回值给它的调用者。我们将这些值称为 函数返回值。
也就是说,函数在代码执行完成后,除了将控制权还给调用者之外,还可以携带值给它的调用者。
如果一个函数需要返回值给它的调用者,那么我们在函数定义时就需要明确中函数能够返回什么类型的值
Rust 语言的返回值定义语法与其它语言有所不同,它是通过在 小括号后面使用 箭头 ( -> ) 加上数据类型 来定义的。
同时在函数的代码中,可以使用 return 关键字指定要返回的值。
如果函数代码中没有使用 return 关键字,那么函数会默认使用最后一条语句的执行结果作为返回值。
1. 有 return 语句
function function_name() -> return_type {
// 其它代码
// 返回一个值
return value;
}
2.无 return 语句
函数中最后用于返回值的语句不能有 分号 ; 结尾,否则就不会时返回值了。
function function_name() -> return_type {
// 其它代码
value // 没有分号则表示返回值
}
实例
fn main(){
println!("my_fn1 value is {}",my_fn1());
println!("my_fn2 value is {}",my_fn2());
}
fn my_fn1()->f64 {
21.0/5.0
}
fn my_fn2()->f64 {
return 22.0/5.0;
}
函数参数
函数参数 是一种将外部变量和值带给函数内部代码的一种机制。函数参数是函数签名的一部分。
Rust 中定义函数如果需要具备参数必须声明参数名称和类型:
实例
fn main() {
my_function(5, 7);
}
fn my_function(x: i32, y: i32) {
println!("x 的值为 : {}", x);
println!("y 的值为 : {}", y);
}
运行结果:
x 的值为 : 5
y 的值为 : 7