当前位置:   article > 正文

深入RUST标准库内核(序言)_深入rust标准库 jd

深入rust标准库 jd

本文摘自《深入RUST标准库》,已经全网发售,恳请支持

对RUST的兴趣来自于Linus认真考虑将RUST作为Linux内核开发语言的新闻报道。因此开始了对RUST探索,不久后基本上就从心底里认同了这门语言,RUST不仅是高性能及安全的语言,它的语法设计也会带来更合理的代码架构,而后一点实际上是以类为基础的编程语言想解决但效果不彰的。相比于它带来的好处,所有权,借用,生命周期等带来的复杂性仅仅是一个训练和习惯的过程而已。
但这个训练和习惯的过程仅仅靠学习各种书籍,指南,文档显然是无法达成的,代码的训练和研究必不可少。在做了一些表层语法的训练之后,就需要做一些复杂模块的代码研究了。
RUST标准库显然是一个合适的研究对象。(标准库代码就在rust安装目录下),vscode+rust插件是一个合适的阅读代码的IDE。
资深C程序员都理解,编程语言核心的关键就是彻底的了解内存和指针,而RUST各种书籍和学习资料中,对指针的解释基本没有触及根本。标准库代码则揭示了指针的所有秘密:原生指针的结构体类型?内存的申请与释放?不同类型的原生指针如何相互转换?… 。实际上,了解了RUST的内存和原生指针,那就解决了RUST大部分的理解难点,剩下的只是概念理解和工作量。
RUST的运算符重载是RUST的另一个核心点。数学运算/位运算/逻辑运算的重载易于理解。但下标运算符[],范围(Range)运算符../start..end/start..=end/start../..end/..=end,问号运算符?,解引用运算符(*)就没有那么易于理解。
迭代器Iterator可视作语言循环结构的一部分,RUST的基础类型数组,切片,字符串对Iterator的实现是学习RUST的代码技巧不可放过的。
Option/Result是RUST的一大创举,这两个类型使得程序员的疏忽大意和思虑不周再没有用武之地。Option/Result结构体的行为也是RUST的函数式编程的基础设施。
在RUST智能指针系列结构中,Box是内存申请的基础,Box的代码是理解RUST的堆内存操作的关键。
还有Vec,String,Rc,Cell,Cow,RefCell,Arc等等,这里不再一一例举,本书会逐一分析其源码,揭示其秘密。

对RUST标准库的代码进行研究是一件很辛苦,很有乐趣的工作。最有趣和最辛苦的就是碰到一个新的类型,新的Trait的时候。往往在“为什么有这个结构类型和Trait”的思考和探索中,一两个小时就过去了。而后豁然开朗,击节赞叹。RUST也随着这些研究和探索,由仙界堕入凡尘。
本书将把这段研究RUST标准库的过程和结果进行揭示。
RUST现在虽然还泯然众人,但估计不久之后将脱颖而出,而能否熟练的用RUST编写程序很可能成为评判优秀程序员的一个标准。希望这本书能够帮助大家更好的掌握这门语言。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/702654
推荐阅读
相关标签
  

闽ICP备14008679号