Comments (3)
「Trait 继承」是个很严谨的说法,它表达的是 trait 的一种用法,描述 supertrait 和 subtrait 的关系。国外官方 RFC/ 官方论坛/ reddit / stackoverflow 都在用 这个词 来描述 这种用法。
Rust 当然不是 OOP 语言。但是「继承」这个词只能 OOP 专用吗?
赞同你的「trait 继承」本质就是 trait bound 和 「组合」。但你用 「trait 组合」 能表达出 「supertrait和subtrait 的父子关系」吗?
不必抠字眼,这只是个代号。明白背后的意义就可以了。
放心大胆的用 「trait 继承」。你可以给这个词 加个 链接,指向官方定义页面就可以了。
from rust_magazine_2021.
我是本文作者,有些读者反馈「Trait 不能继承 Sized」的说法不是很严谨,会造成误解,因为 Rust 不是 OOP 的语言,说 trait 继承会让初学者以为 Rust 具备 OOP 的特点,其实这里的“继承”更类似于「组合」的概念,官方文档称为 trait bound。
本文在投稿 RustMagazine 后,又更新了些内容,感兴趣读者可移步:https://liujiacai.net/blog/2021/04/27/trait-usage/
from rust_magazine_2021.
把 a: b 这种形式 按 限定 理解也行,但其实我们需要一个「父与子」的概念。比如 'long: 'short
,在判断协变逆变情况下是需要的。用 继承语义来统一理解是很有必要的。因此我认为,「trait 继承」这个叫法很精准很严谨。
from rust_magazine_2021.
Related Issues (20)
- 【官方】对 Rust 审核团队问题的后续跟进 - Rust精选 HOT 1
- Rust Pin 进阶 - Rust精选 HOT 2
- 学习园地 | 图解 Rust 所有权与生命周期 - Rust精选 HOT 3
- 学习资源 - Rust Magazine 2022 HOT 1
- 介绍 - Rust精选 HOT 6
- 使用 nom 解析 url - Rust精选 HOT 1
- 对Web3.0概念的梳理 - Rust精选 HOT 3
- 在 Android 中运行 Rust - Rust精选
- 了解一点关于泛型关联类型(GAT)的事 - Rust精选 HOT 1
- Kafka - 技术架构学习 HOT 1
- 蚂蚁集团 | Play With Your Async Code - Rust精选
- 为什么你不应该沉迷于 Rust 的“特性” - Rust精选 HOT 1
- RustChinaConf2020 精选 | Rust 异步与并发 - Rust精选 HOT 1
- 惋惜 HOT 2
- 「系列」Rust设计模式 | 工厂模式 - Rust精选 HOT 5
- Hard问题研究 - 读书笔记 HOT 1
- 字节跳动 | 飞书 Rust 实践 之 SQLite 适配 WASM - Rust精选 HOT 1
- 推荐项目 | 框架引擎 - Rust精选 HOT 1
- rust web服务内存占用过高不释放问题 HOT 1
- Rust 中无法办到的事情(以及如何替代) - Rust精选 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust_magazine_2021.