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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值