文章目录
- Rust 函数
-
- 函数
- 函数(方法)讲解
-
- 1.什么是函数(方法)
- 2.方法(函数的构成)
-
- 1. 什么是形参
- 2.什么是实参
- 3.定义方法(函数)类型
-
- (方法)函数类型
- 5.方法(函数)的 return
-
- 使用 `return` 关键字
- 隐式返回
- 5.关联方法,自由函数
-
- 关联方法(Associated Methods)
- 自由函数(Free Functions)
- 技术细节
-
- 带有返回值的方法
- 不带返回值的方法
Rust 函数
函数
在大部分语言中函数或者叫方法,函数(方法)在大多数语言中是不可缺少的,因此到处可见,所以函数(方法)是什么呢?
在 Rust 中,函数被也可以称为方法(methods),它们是 Rust 程序中的基本构建块之一。方法是一段被命名并可重复调用的代码块,用于执行特定的任务。方法可以接受参数并返回值,它们通常用于执行特定的操作或完成特定的计算。
你说得对,让我更具体一些。在 Rust 中,函数和方法有一些区别:
-
函数(Functions):在 Rust 中,函数是一段独立的代码块,可以接受参数并返回值,但它们不附属于任何特定的类型。函数可以在任何地方被调用,它们通常用于执行一些独立的操作,而不依赖于特定的数据结构或类型。
-
方法(Methods):方法是与特定类型相关联的函数。它们通过"self"参数(或"&self"、"&mut self"等)来访问其所属的类型的数据。在 Rust 中,方法的调用通常使用"对象.方法名()"的语法,其中对象是方法所属的类型的实例。方法的定义通常在特定类型的实现块(impl block)中。
在 Rust 中,尤其是在处理结构体或枚举类型时,很多代码确实会写在方法里面,这样可以更好地组织和管理代码,并使代码更具有结构性和可读性。
达标的 Rust 方法应该满足以下要求:
-
与类型相关联:方法应该与特定类型相关联,并通过"self"参数来访问该类型的数据。
-
遵循所有函数的要求:方法也必须遵循函数的所有要求,包括安全性、性能、可读性和健壮性。
-
符合面向对象的原则:方法的设计应该符合面向对象编程的原则,即将操作和数据封装在一起,提供一种清晰的接口供用户使用。
下面是一个简单的 Rust 方法的结构组成,包括可选的修饰符:
// 可选的修饰符:pub 等
fn 方法名(&self, 参数1: 参数类型, 参数2: 参数类型, ...) -> 返回类型 {
// 执行语句
...
// 可选的返回值
return 返回值;
}
让我们来解释一下每个部分:
-
fn
: 这个关键字用于声明一个函数。 -
方法名
: 函数的名称,你可以根据需要为函数起一个合适的名字。 -
(&self)
: 这个是函数的第一个参数,表示方法是一个对象的方法。self
表示当前对象的引用,&
表示这是一个不可变引用,如果需要修改对象,可以使用&mut self
。 -
参数1: 参数类型, 参数2: 参数类型, ...
: 这是函数的参数列表,每个参数都有一个名称和一个类型。 -
-> 返回类型
: 这是函数的返回类型,表示函数执行完毕后将返回的值的类型。 -
{}
: 函数体由一对大括号包围,里面包含了函数的具体实现。 -
// 执行语句
: 这是函数内部的执行语句,你可以在这里编写任何你想要执行的代码逻辑。 -
return 返回值;
: 这是一个可选项,用于指定函数的返回值。你可以使用return
关键字来显式地返回一个值,也可以省略返回值,这样函数将会返回一个空的元组()
。
可选的修饰符 pub
可以用于标记函数或其他项为公共的,这样它们就可以被外部模块访问。
函数(方法)讲解
1.什么是函数(方法)
简单理解方法(函数)可以理解为一个载体,好比我是一名优秀的博客作家【方法,函数】,博客作家只是我的代号【方法名,函数名】,并不能代表我的能编写很好的文章,因此就需要我们在方法(函数中进行完善一些行为)这些行为定义了我写博客的过程,这个过程就是我要编写代码的处理行为亦或是我的内在【方法内部的代码】
2.方法(函数的构成)
-
fn
: 这个关键字用于声明一个函数。 -
方法名
: 函数的名称,你可以根据需要为函数起一个合适的名字。 -
(&self)
: 这个是函数的第一个参数,表示方法是一个对象的方法。self
表示当前对象的引用,&
表示这是一个不可变引用,如果需要修改对象,可以使用&mut self
。 -
参数1: 参数类型, 参数2: 参数类型, ...
: 这是函数的参数列表,每个参数都有一个名称和一个类型。 -
-> 返回类型
: 这是函数的返回类型,表示函数执行完毕后将返回的值的类型。 -
{}
: 函数体由一对大括号包围,里面包含了函数的具体实现。 -
// 执行语句
: 这是函数内部的执行语句,你可以在这里编写任何你想要执行的代码逻辑。 -
return 返回值;
: 这是一个可选项,用于指定函数的返回值。你可以使用return
关键字来显式地返回一个值,也可以省略返回值,这样函数将会返回一个空的元组()
。
1. 什么是形参
在 Rust 中,方法的形参(formal parameters)指的是方法定义中声明的参数,用于接收调用该方法时传入的值。形参位于方法签名的括号内,在括号内以逗号分隔,每个形参都由参数名和参数类型组成。
下面是一个简单的示例,展示了一个具有两个形参的方法的定义:
struct Rectangle {
width: u32,
height: u32,
}
impl Rectangle {
// 方法定义,这里的`&self`是一个形参,表示该方法可以通过引用调用,并且该引用是不可变的
// 方法的第二个形参`increase_by`是一个u32类型的参数,用于指定增加的值
fn increase_size(&mut self, increase_by: u32) {
self.width += increase_by;
self.height += increase_by;
}
}
fn main() {
let mut rect = Rectangle {