从 C++ 走向 rust(一):Hello, World!

这篇博客探讨了Rust、C++和Go三种编程语言在代码简洁性、内核设计和抽象机制上的差异。Rust通过内置模块提供了简洁的Hello, World!代码,而C++坚持微内核以适应系统级编程。Go语言将常用数据结构纳入内核,牺牲了语言的紧凑性。Rust的零成本抽象避免了C++的虚表开销,实现了高效的面向对象编程。文章强调了语言设计中性能、易用性和灵活性之间的平衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 更具灵活性。


原创不易,如果对您有帮助,请关注、点赞,谢谢支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许野平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值