从 C++ 走向 rust(一):Hello, World!
2023-09-27 14:20:16 时间
Hello, World!
先贴代码:
fn main() {
println!("Hello, world!");
}
语言内核
只看源代码的话,rust 版的 hello world 比 c 和 c++ 的都要简短。分析其原因,rust 提供了系统默认的模块,这个不需要引用声明,因此,可以大大简化代码的编写。
c++ 之所以不肯提供系统默认的模块,主要是为了坚持一个理念 —— c++的内核是极小的,因此可以胜任系统级别的代码设计,尤其嵌入式系统的编程。
go 语言干脆把 c++ 的 std 模板库里的常见数据结构给放到语言内核里了,用起来当然很爽,但是代价是语言内核增大了。
rust 的做法性价比更好,既保持了 c++ 微内核的优点,又具有 go 语言的便利性。
零成本抽象
c++ 用 cout 向屏幕输出文字,rust 则用 println,这意味着什么?
rust 摈弃了传统的用 class 实现 oop 的方法。原因很简单,c++ 的虚表机制降低了 c 语言的性能。oop 抽象的实现是付出了不可忽视的代价的。所以有人表示不服,在 c 语言下搞了个 gtk 库,既保持了 c 语言的性能,又实现了 oop。可惜的是,这类小打小闹的改进得不到编译器的支持。
rust 来了,针对 oop 思想,提供了全新的理念。rust 的 oop 实现放弃了虚表,实现了 c 语言同样的效率,而且较传统虚表机制的 oop 更具灵活性。
原创不易,如果对您有帮助,请关注、点赞,谢谢支持!
相关文章
- C++ 调用 .lib 文件中的函数
- c++ STL unique , unique_copy函数
- 64 C++ - 标准异常库
- C++字符串处理
- C++码农要读的经典
- C++知识点 笔试常见
- 基于QT(C++)实现(图形界面)选课管理系统【100010320】
- Carbon教程之Rust不是 C++ 王位的继承人,谷歌的 Carbon 确实(j教程含安装教程)
- C++进阶之虚函数表
- 编译器是C写的,包括一点C++,editor和debugger是C++写的(最早的16位编译器是纯汇编写的)
- 【C++入门基础(上)】
- c++的vector简单使用
- 155、【动态规划】leetcode ——474. 一和零:三维数组+二维滚动数组(C++版本)
- PAT归纳总结——关于C++输入输出格式问题的一些总结