0
点赞
收藏
分享

微信扫一扫

RUST——封装的实现

你带来了我的快乐 2022-01-22 阅读 90
rust

在rust中实现对数据和方法实现的封装,主要是利用rust中的struct和枚举类型来实现对数据的封装,利用impl代码块来实现对struct和枚举类型中方法的封装。

下面给出利用struct和impl实现封装的示例代码:

pub struct AveragedCollection {
    list: Vec<i32>,
    average: f64,
}

impl AveragedCollection {
    pub fn add(&mut self, value: i32) {
        self.list.push(value);
        self.update_average();
    }

    pub fn remove(&mut self) -> Option<i32> {
        let result = self.list.pop();

        match result {
            Some(value) => {
                self.update_average();
                Some(value)
            }

            None => None,
        }
    }

    fn update_average(&mut self) {
        let total: i32 = self.list.iter().sum();
        self.average = total as f64 / self.list.len() as f64;
    }

    pub fn average(&self) -> f64 {
        return self.average
    }
}

我们实现了一个AverageCollection的struct,在其内部有一个list属性用来存储数据,同时有一个average属性用来计算对应list中的数据的平均值,同时利用impl块,来实现对struct内部数据进行操作的方法,避免直接把内部数据,也就是实现细节直接暴露出来,实现封装的目的。

举报

相关推荐

0 条评论