news 2026/6/12 9:32:15

HoRain云--Rust 面向对象

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--Rust 面向对象

🎬 HoRain 云小助手:个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

封装

实例

实例

继承


面向对象的编程语言通常实现了数据的封装与继承并能基于数据调用方法。

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 中的类的继承),但灵活的语法依然可以实现相关的功能。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 9:31:40

2026免费图片换背景软件大全,手把手教你给图片更换背景

你是不是也经常遇到这样的困扰?拍好的人像照片背景杂乱,证件照需要更换标准底色,商品配图想换上精致背景,尝试手动修图却总出现抠图毛边、画面不协调的问题。其实借助合适的工具,零基础也能轻松完成图片换背景操作。20…

作者头像 李华
网站建设 2026/6/12 9:30:53

RAG效果怎么量化?检索准确率+回答忠实度+RAGAS四维指标实战

专栏第11篇:前面两篇文章分别讲了RAG的离线阶段(文档处理)和在线阶段(混合检索与重排序)。但系统搞好了,怎么知道它好不好?RAG效果不能靠“感觉”,必须量化评估。今天从检索端和生成…

作者头像 李华
网站建设 2026/6/12 9:30:01

考研院校名单大全|择校名单|资料已整理

考研院校名单大全|择校名单|资料已整理资料全科都有考研院校名单择校资料 PDFhttps://pan.quark.cn/s/c10fdd3f93a0 【英语真题】1. A complete list can help applicants narrow their choices. The word "narrow" means( )A. reduce B. inc…

作者头像 李华
网站建设 2026/6/12 9:19:42

从游戏到AI:聊聊不同GPU架构(Volta/Ampere)下CUDA线程配置的实战差异

从游戏到AI:不同GPU架构下CUDA线程配置的实战差异当你在RTX 3090上跑得飞快的CUDA kernel,换到A100上却性能平平,问题很可能出在那些看似简单的grid_size和block_size数字上。这不是简单的参数调整,而是硬件架构差异与算法特性交织…

作者头像 李华
网站建设 2026/6/12 9:17:36

hermes源码学习6--工具运行时

Hermes 工具是自注册函数,按 toolset(工具集)分组,并通过中央注册表/调度系统执行。主要文件:tools/registry.pymodel_tools.pytoolsets.pytools/terminal_tool.pytools/environments/*工具注册模型每个工具模块在导入…

作者头像 李华