zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

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


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