1 前言:为什么写这本书
和Rust结缘是2019年,当时为了能看懂libra的源码,开始了Rust的学习。起初的目标只是能看懂Rust的代码就好,谁知一看竟然发现这门编程语言很对我的胃口,于是开启了真正的Rust学习之路。彼时的工作中并没有使用Rust,但是周围的小伙伴有在研究谷歌操作系统fuchsia,跟他们的交流更加坚定了我要学习这门编程语言的想法。
所谓“拳不离手,曲不离口”,要能熟练地掌握一门编程语言必须要有大量的练习,但是因为在工作中并不会使用Rust,这无疑会让Rust学习的效果打折扣。为了促使自己不断地学习输入,我想到了边学习边录制视频,然后将视频放到B站上。虽然当时对Rust的理解不够深入,甚至是有些视频中还有错误,但还是让我有了一批一起学习Rust的粉丝。
2021年换工作后算是真正开始使用Rust了,在真正使用Rust的过程中也曾产生过撰写一本Rust教程的想法。但是一直感觉写书是一件严肃的事情,更何况自己的Rust水平也只能算是个熟练的使用者而已。直到最近和DaviRain聊天,说起如果能有办法降低一点点Rust入门的难度,也算是给Rust做了一点贡献,于是决定和DaviRain写这本书。
所以本书定位就是为了方便入门Rust,在本书中:
- 对于Rust中相对简单的语法就是简单地描述,然后给出示例。
- 对于一些复杂的、不太好理解的,我们觉得不属于入门需要掌握的知识,就尽量少提及或者不提及。
- 尽量多地画图,例如对Rust的内存模型、所有权等尽量多地画图描述。
本书撰写过程中,我们参考了其它的Rust书籍,参考的书籍主要有《The Rust Programming Language》、《Rust语言圣经》、《Rust入门秘籍》、《Rust第一课》等。本书第2.1节(为什么选择Rust)是由ChatGPT4进行生成;第3.8节复合数据类型、第3.15节常见的Collections、第4章Rust使用技巧由DaviRain完成;第3.9节Trait部分由DaviRain和令狐壹冲一起完成;其它章节由令狐壹冲完成。但是由于我们自身水平的问题,本书必然存在一些错误和描述不清楚的地方,希望各位读者能够不吝指正!
愿本书能让您的Rust入门之路变得不再崎岖!
令狐壹冲
本书的其它贡献者
本书在上线后,有一些朋友对本书提了些建议,他们是: @tk103331 @geometryolife 群友 云南青山 @daleydeng