阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

学习Rust 面向对象

60次阅读
没有评论

共计 1169 个字符,预计需要花费 3 分钟才能阅读完成。

导读 Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。

学习 Rust 面向对象
面向对象的编程语言通常实现了数据的封装与继承并能基于数据调用方法。
Rust 不是面向对象的编程语言,但这些功能都得以实现。

封装

封装就是对外显示的策略,在 Rust 中可以通过模块的机制来实现最外层的封装,并且每一个 Rust 文件都可以看作一个模块,模块内的元素可以通过 pub 关键字对外明示。这一点在 ” 组织管理 ” 章节详细叙述过。
“ 类 ” 往往是面向对象的编程语言中常用到的概念。” 类 ” 封装的是数据,是对同一类数据实体以及其处理方法的抽象。在 Rust 中,我们可以使用结构体或枚举类来实现类的功能:

实例

pub struct ClassName {pub field: Type,}

pub impl ClassName {fn some_method(&self) {// 方法函数体}
}

pub enum EnumName {
    A,
    B,
}

pub impl EnumName {fn some_method(&self) {}}

下面建造一个完整的类:

实例

second.rs
pub struct ClassName {field: i32,}

impl ClassName {pub fn new(value: i32) -> ClassName {
        ClassName {field: value}
    }

    pub fn public_method(&self) {println!("from public method");
        self.private_method();}

    fn private_method(&self) {println!("from private method");
    }
}
main.rs
mod second;
use second::ClassName;

fn main() {let object = ClassName::new(1024);
    object.public_method();}

输出结果:

from public method
from private method
继承

几乎其他的面向对象的编程语言都可以实现 ” 继承 ”,并用 ”extend” 词语来描述这个动作。

继承是多态(Polymorphism)思想的实现,多态指的是编程语言可以处理多种类型数据的代码。在 Rust 中,通过特性(trait)实现多态。有关特性的细节已在 ” 特性 ” 章节给出。但是特性无法实现属性的继承,只能实现类似于 ” 接口 ” 的功能,所以想继承一个类的方法最好在 ” 子类 ” 中定义 ” 父类 ” 的实例。

总结地说,Rust 没有提供跟继承有关的语法糖,也没有官方的继承手段(完全等同于 Java 中的类的继承),但灵活的语法依然可以实现相关的功能。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1169字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中