赞
踩
本文摘自《深入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编写程序很可能成为评判优秀程序员的一个标准。希望这本书能够帮助大家更好的掌握这门语言。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。