方法類似於函式,因為它們在start
和then
函式名稱中包含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
塊之外的其它位置。