橘子味的心
标题: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块之外的其它位置。


分类