Rust結構體方法語法

方法類似於函數,因為它們在startthen函數名稱中包含fn關鍵字。 方法還包含參數和返回值。 但是,當在struct上下文中聲明方法時,方法語法與正常函數不同。這些方法的第一個參數始終是self,它表示調用函數的實例。

定義方法

struct上下文中聲明方法時定義方法。

struct Square
{
    a : u32,
}
impl Square
{
    fn area(&self)->u32
    {
        self.a * self.a
    }
}

fn main()
{
    let square = Square{a:10};
    print!("Area of square is {}", square.area());
}

執行上面示例代碼,得到以下結果 -

Area of square is 100

當在struct上下文中聲明方法時,定義實現塊內的方法,即impl塊。

impl Square
{
    fn area(&self)->u32
    {
        self.a * self.a
    }
}

第一個參數是簽名中的self,可在主體內的任何位置。

在這裏,使用方法語法來調用area()函數。 方法語法是一個實例,後跟點運算符,方法名稱,參數和任何參數。

square.area();

square是實例,area()是函數名稱。

注意:如果想要更改調用該方法的實例,那麼使用&mut self而不是&self作為第一個參數。

方法語法的優點:

使用方法語法而不是函數的主要優點是,與實例相關的所有數據都放在impl塊中,而不是放在impl塊之外的其他位置。


上一篇: Rust結構體更新語法 下一篇: Rust枚舉