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塊之外的其它位置。