Rust 中如何定义方法?

· 约 3 分钟读完 · 第 59 / 179 章

推荐答案

在 Rust 中,方法是通过在 impl 块中定义的。方法可以操作结构体、枚举或 trait 对象的实例。方法的第一个参数通常是 self,表示方法所操作的对象实例。根据是否需要修改实例,self 可以是 self、&self 或 &mut self。

本题详细解读

1. 方法的定义

在 Rust 中,方法是通过 impl 块来定义的。impl 块用于为结构体、枚举或 trait 对象实现方法。方法的第一个参数通常是 self,它表示方法所操作的对象实例。

  • self:表示方法获取实例的所有权。
  • &self:表示方法借用实例的不可变引用。
  • &mut self:表示方法借用实例的可变引用。

2. 不可变方法

不可变方法使用 &self 作为第一个参数,表示方法不会修改实例的状态。例如,area 方法计算矩形的面积,但不会修改矩形的宽度或高度。

3. 可变方法

可变方法使用 &mut self 作为第一个参数,表示方法可以修改实例的状态。例如,resize 方法可以修改矩形的宽度和高度。

4. 关联函数(静态方法)

关联函数不操作实例,因此不需要 self 参数。它们通常用于构造函数或其他与类型相关的功能。例如,square 函数创建一个正方形矩形。

5. 方法的调用

方法可以通过实例来调用。对于不可变方法,使用 . 操作符;对于可变方法,使用 &mut 引用。

通过这种方式,Rust 允许你在结构体或枚举上定义方法,从而封装数据和行为。