Rust语言入门第六篇-函数

文章目录

  • Rust 函数
    • 函数
    • 函数(方法)讲解
      • 1.什么是函数(方法)
      • 2.方法(函数的构成)
        • 1. 什么是形参
        • 2.什么是实参
        • 3.定义方法(函数)类型
          • (方法)函数类型
        • 5.方法(函数)的 return
          • 使用 `return` 关键字
          • 隐式返回
        • 5.关联方法,自由函数
          • 关联方法(Associated Methods)
          • 自由函数(Free Functions)
    • 技术细节
      • 带有返回值的方法
      • 不带返回值的方法

Rust 函数

函数

在大部分语言中函数或者叫方法,函数(方法)在大多数语言中是不可缺少的,因此到处可见,所以函数(方法)是什么呢?
在 Rust 中,函数被也可以称为方法(methods),它们是 Rust 程序中的基本构建块之一。方法是一段被命名并可重复调用的代码块,用于执行特定的任务。方法可以接受参数并返回值,它们通常用于执行特定的操作或完成特定的计算。

你说得对,让我更具体一些。在 Rust 中,函数和方法有一些区别:

  1. 函数(Functions):在 Rust 中,函数是一段独立的代码块,可以接受参数并返回值,但它们不附属于任何特定的类型。函数可以在任何地方被调用,它们通常用于执行一些独立的操作,而不依赖于特定的数据结构或类型。

  2. 方法(Methods):方法是与特定类型相关联的函数。它们通过"self"参数(或"&self"、"&mut self"等)来访问其所属的类型的数据。在 Rust 中,方法的调用通常使用"对象.方法名()"的语法,其中对象是方法所属的类型的实例。方法的定义通常在特定类型的实现块(impl block)中。

在 Rust 中,尤其是在处理结构体或枚举类型时,很多代码确实会写在方法里面,这样可以更好地组织和管理代码,并使代码更具有结构性和可读性。

达标的 Rust 方法应该满足以下要求:

  1. 与类型相关联:方法应该与特定类型相关联,并通过"self"参数来访问该类型的数据。

  2. 遵循所有函数的要求:方法也必须遵循函数的所有要求,包括安全性、性能、可读性和健壮性。

  3. 符合面向对象的原则:方法的设计应该符合面向对象编程的原则,即将操作和数据封装在一起,提供一种清晰的接口供用户使用。

下面是一个简单的 Rust 方法的结构组成,包括可选的修饰符:

// 可选的修饰符:pub 等
fn 方法名(&self, 参数1: 参数类型, 参数2: 参数类型, ...) -> 返回类型 {
   
   
    // 执行语句
    ...
    // 可选的返回值
    return 返回值;
}

让我们来解释一下每个部分:

  1. fn: 这个关键字用于声明一个函数。

  2. 方法名: 函数的名称,你可以根据需要为函数起一个合适的名字。

  3. (&self): 这个是函数的第一个参数,表示方法是一个对象的方法。self 表示当前对象的引用,& 表示这是一个不可变引用,如果需要修改对象,可以使用 &mut self

  4. 参数1: 参数类型, 参数2: 参数类型, ...: 这是函数的参数列表,每个参数都有一个名称和一个类型。

  5. -> 返回类型: 这是函数的返回类型,表示函数执行完毕后将返回的值的类型。

  6. {}: 函数体由一对大括号包围,里面包含了函数的具体实现。

  7. // 执行语句: 这是函数内部的执行语句,你可以在这里编写任何你想要执行的代码逻辑。

  8. return 返回值;: 这是一个可选项,用于指定函数的返回值。你可以使用 return 关键字来显式地返回一个值,也可以省略返回值,这样函数将会返回一个空的元组 ()

可选的修饰符 pub 可以用于标记函数或其他项为公共的,这样它们就可以被外部模块访问。

函数(方法)讲解

1.什么是函数(方法)

简单理解方法(函数)可以理解为一个载体,好比我是一名优秀的博客作家【方法,函数】,博客作家只是我的代号【方法名,函数名】,并不能代表我的能编写很好的文章,因此就需要我们在方法(函数中进行完善一些行为)这些行为定义了我写博客的过程,这个过程就是我要编写代码的处理行为亦或是我的内在【方法内部的代码】

2.方法(函数的构成)

  1. fn: 这个关键字用于声明一个函数。

  2. 方法名: 函数的名称,你可以根据需要为函数起一个合适的名字。

  3. (&self): 这个是函数的第一个参数,表示方法是一个对象的方法。self 表示当前对象的引用,& 表示这是一个不可变引用,如果需要修改对象,可以使用 &mut self

  4. 参数1: 参数类型, 参数2: 参数类型, ...: 这是函数的参数列表,每个参数都有一个名称和一个类型。

  5. -> 返回类型: 这是函数的返回类型,表示函数执行完毕后将返回的值的类型。

  6. {}: 函数体由一对大括号包围,里面包含了函数的具体实现。

  7. // 执行语句: 这是函数内部的执行语句,你可以在这里编写任何你想要执行的代码逻辑。

  8. 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 {
   
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小电玩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值