文章目录
- Rust语言强在哪?
- 缺点呢?
- 学习Rust语言的感受
- 一起给Rust语言贴标签
- Rust是强类型语言
- Rust是静态语言
- Rust支持强大的模式匹配
- Rust支持宏编程
- Rust支持内联代码
- Rust支持高效的函数式编程
- Rust是无须手动释放内存的编程语言
- Rust是多线程安全的编程语言
- Rust支持元编程
Rust语言强在哪?
关于Rust
代码的运行性能,网上有很多比对测试和讨论,笔者这里给出一个比较统一的说法:Rust代码性能媲美C++。
无论是运行占用的内存还是消耗的CPU
时间,Rust
在一众现代编程语言中“一骑绝尘”,是仅次于C
,而与C++
不相上下的强者。
一句话总结,Rust
强在哪,可以浓缩为4个词:安全、高效、便捷、优雅。
安全:单一所有权机制的设计,从根源上出发,解决内存回收的问题。在编译期就杜绝绝大多数内存安全和多线程安全问题。
高效:静态编译,且无运行时和动态GC
等问题。
便捷:虽然是静态强类型语言,因为支持类型推断、泛型和函数式编程,Rust代码的书写跟书写Python
、TypeScript
等动态语言代码,其体验是近乎一致的。还有强大的宏编程,让脚手架代码浓缩于一个“瘦小”的宏中。
优雅:优雅的代码令人赏心悦目。Rust中提供了很多优雅的方式来简化代码的书写,让代码的含义更加直观。
比如无处不在的宏
、From/Into trait
、AsRef trait
等等。
缺点呢?
如果非要找Rust有什么缺点,勉强总结3点:
1、Rust团队极其注重性能,针对不同的应用场景提供了各种不同的解决方案。要全面掌握Rust,需要学习和掌握各种应用场景,学习成本高。不过,反过来看,一旦完全学会,将受益无穷。
2、Rust是严格的强类型语言,经常需要as关键字
进行类型转换,略显麻烦。
3、编译过程中,因为严格的生命周期和所有权检查、以及大量的宏展开,编译略慢。
不过瑕不掩瑜,任何事情都有两面性,没有绝对的完美。
Rust编程语言已经做到“前无古人”,看好Rust成为未来5-10年的主流。
Rust语言就像一门横空出世、集百家之大成的武林绝学,一旦掌握,将会傲视代码江湖。
学习Rust语言的感受
- 用Rust写代码,会让你对变量的生命周期和变量之间的引用关系了然于胸。
- rust表达力强大,熟悉某个模块之后,写代码顺手拈来,毫不费劲。
- 编写链表、树、图的相关代码,掌握难度比较大。
一起给Rust语言贴标签
Rust是强类型语言
不存在隐式类型转换,能避免编程中不小心导致的一些隐含错误。
Rust是静态语言
需要先经过编译器编译成机器码,才能高效运行。而不像动态语言需要一个解释器解释执行。
Rust支持强大的模式匹配
https://doc.rust-lang.org/std/keyword.match.html
Rust支持宏编程
Rust支持宏编程。借助强大的宏规则,能够在编译期修改代码树,添加很多脚手架代码。
Rust支持内联代码
通过 #[inline]
宏标记。内联操作让编译器将嵌套的函数调用进行代码展开,省去嵌套调用函数的额外开销。
Rust支持高效的函数式编程
不光写代码高效,函数式编程相关代码在执行时同样非常高效。这得益于,标准库iterator.rs
中map/filter/fold
等函数都有 #[inline]
标记。
Rust是无须手动释放内存的编程语言
90%的情况下如此(大部分人甚至无需接触余下的10%)。
Rust是多线程安全的编程语言
共享不可变,可变不共享。
不可变的内容可以在多线程中进行共享访问,通过Arc引用计数只能指针。
多线程中可修改的内容,必须通过互斥机制(Atomic
,Mutex
)进行同步。
Rust支持元编程
宏;用代码来生成代码。