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

本书github链接:inside-rust-std-library

对RUST的兴趣来自于一则新闻报道——Linus认真考虑将RUST作为Linux内核开发语言。因此开始了对RUST探索,不久后基本上就从心底里认同了这门语言,RUST不仅是高性能及安全的语言,它的语法设计也会带来更合理的代码架构,即使是对于初学者。而后一点实际上是以类为基础的编程语言想解决但效果不彰的。相比于它带来的好处,所有权,借用,生命周期等带来的复杂性仅仅是一个训练和习惯的过程而已。 但这个训练和习惯的过程仅仅靠学习各种书籍,指南,文档显然是无法达成的,代码的训练和研究必不可少。在做了一些表层语法的训练之后,就需要做一些复杂模块的代码研究了。

RUST标准库显然是一个合适的研究对象。(标准库代码就在rust安装目录下),vscode+rust插件是一个合适的阅读代码的IDE。 

资深C程序员都理解,C语言核心的关键就是彻底的了解内存和指针,作为和C地位等同的系统级变成语言,RUST的核心关键实际上也类似。但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编写程序很可能成为评判优秀程序员的一个标准。希望这本书能够帮助大家更好的掌握这门语言。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容