Rust 中什么是方法 (Method)?

推荐答案

在 Rust 中,方法(Method)是与特定类型关联的函数。它们通过 impl 块定义,并且第一个参数总是 self,表示调用该方法的实例。方法可以是实例方法或关联函数(类似于静态方法)。

-- -------------------- ---- -------
------ --------- -
    ------ ----
    ------- ----
-

---- --------- -
    -- ----
    -- ----------- -- --- -
        ---------- - -----------
    -

    -- ----
    -- ------------ ---- -- --------- -
        --------- -
            ------ -----
            ------- -----
        -
    -
-

-- ------ -
    --- ---- - --------- - ------ --- ------- -- --
    --------------- ---- -------------

    --- ------ - ----------------------
    ---------------- ----- ---- ---------------
-

本题详细解读

方法的定义

在 Rust 中,方法是通过 impl 块来定义的。impl 块用于为特定类型实现方法。方法的第一个参数通常是 self,表示调用该方法的实例。self 可以是以下几种形式:

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

实例方法

实例方法是与类型的实例相关联的方法。它们通过实例调用,并且可以访问实例的字段。例如,area 方法是一个实例方法,它通过 rect.area() 调用,并返回矩形的面积。

关联函数

关联函数是与类型关联但不依赖于实例的函数。它们类似于其他语言中的静态方法。关联函数通过类型名调用,而不是通过实例。例如,square 是一个关联函数,它通过 Rectangle::square(10) 调用,并返回一个正方形 Rectangle 实例。

方法的调用

方法的调用方式取决于方法的定义:

  • 实例方法通过实例调用,例如 rect.area()
  • 关联函数通过类型名调用,例如 Rectangle::square(10)

方法的用途

方法的主要用途是封装与特定类型相关的行为。通过将函数与类型关联,可以提高代码的可读性和可维护性。方法还可以访问类型的私有字段,从而实现封装和数据隐藏。

纠错
反馈