|
Rust连续四年在stack overflow被评为最喜欢的编程语言,声称没有undefined行为,以及没有data race。
通过这段时间的学习,发现即使现在我没有使用rust开发项目,它的一些特性,也让我对编写程序有了更深入的认识,也让我对C++有了更好的认识。
比如多线程编程的困境:Sync, Send, and 'Static总结了多线程编程的一些注意事项。
以下是这段时间编写的关于Rust的文章。
一、Rust那些难理解的点
二、多线程编程的困境:Sync, Send, and 'Static
三、Rust module System
四、闭包是什么, C++和Rust的视角
五、怎么理解C++虚函数?fat pointer in GO/Rust vs thin pointer in C++
六、C++:Rule of five/zero 以及Rust:Rule of two
七、什么是move,理解C++和Rust的一步
八、Rust: PhantomData,#may_dangle和Drop Check 虚虚实实
九、Rust源码阅读:引用计数/Rc
十、内部可变性/Interior Mutability in Rust
十一、Rust源码阅读: Cell/RefCell与内部可变性
十二、Rust: Pin与刻舟求剑
十三、Rust: Lifetime 解惑, 生命周期还在
十四、
为什么学习Rust会有助于建立正确的编程思考模型?
因为Rust为了保证没有data race以及在不引入GC的情况下保证memory safty,它选择的方法是通过类型系统来解决。
而要通过类型系统解决,那么很多要求都需要表现在类型上面。
当你学习Rust的类型系统的时候,你也就相应地学习了要解决的问题以及对应的解决办法!
比如Send,Sync, ‘static这三个概念,它的提出就是为了解决多线程程序的data race,那么学习为什么这三个概念可以防止data race,那么你就会明白多线程程序里面要注意的事项。(详情请看上面文章关于多线程的文章)。
所以Rust可以帮助你提升编程的内力。(注意并不是唯一的方法) |
|