Rust 程式設計視訊教程對應講解內容-方法

linghuyichong發表於2019-12-26

頭條地址:https://www.ixigua.com/i676544267458235648...
B站地址:https://www.bilibili.com/video/av78062009?...
網易雲課堂地址:https://study.163.com/course/introduction....

1、rust中的方法類似於c++中類的成員函式。

2、方法例子

#[derive(Debug)]
struct Dog {
    name: String,
    weight: f32,
    height: f32,
}

impl Dog { //下面為實現方法
    fn get_name(&self) -> &str{
        &(self.name[..])
    }

    fn get_weight(&self) -> f32 {
        self.weight
    }

    fn get_height(&self) -> f32 {
        self.height
    }
}

fn main() {
    let dog = Dog{name: String::from("jack"), weight:20.5, height: 60.0};
    println!("name = {}", dog.get_name().to_string());
    println!("weight = {}", dog.get_weight());
    println!("height = {}", dog.get_height());
    println!("Hello, world!");
}

3、可以有多個impl塊
上面的程式碼

impl Dog { //下面為實現方法
    fn get_name(&self) -> &str{
        &(self.name[..])
    }

    fn get_weight(&self) -> f32 {
        self.weight
    }

    fn get_height(&self) -> f32 {
        self.height
    }
}

還可以寫為多個impl塊,如下:

impl Dog { //下面為實現方法
    fn get_name(&self) -> &str{
        &(self.name[..])
    }
}

impl Dog { //下面為實現方法
    fn get_weight(&self) -> f32 {
        self.weight
    }
}

impl Dog { //下面為實現方法
    fn get_height(&self) -> f32 {
        self.height
    }
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結

令狐一衝

相關文章