分享
Rust轻松学初稿
输入“/”快速插入
Rust轻松学初稿
撰写说明
(1)语言尽量简洁;
(2)小标题最深到H4,再下一级用标号(1.2.3.4)列表,在下一级用点号列表;
(3)涉及内存的部分,尽量有对应的图描述。
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入门之路能够变得不再崎岖!
令狐壹冲
2、欢迎来到Rust的世界
2.1 为什么选择Rust -----
chatgpt
2.1.1 Rust的历史与背景
Rust是一种现代的系统编程语言,它注重性能、安全性和
并发
。Rust最初由Mozilla研究院的Graydon Hoare于2006年开始设计,最早的目标是为了解决
C++
在系统编程领域的一些痛点。在2010年,Mozilla正式开始支持这个项目,从那时起,Rust开始迅速发展并逐渐成为一个强大的编程语言。
1.
设计理念
Rust的设计理念是将系统编程的性能与安全性相结合。它的核心创新是引入了一套所有权系统,这套系统能在编译时检测许多常见的内存错误,如空指针解引用、数据竞争等。这种设计使得Rust在保持C和
C++
级别性能的同时,提供了更高的内存安全性。
2.
发展历程
•
2006年:Graydon Hoare开始设计Rust。
•
2009年:Mozilla开始关注Rust,希望它能成为一种更安全的系统编程语言。
•
2010年:Mozilla正式支持Rust项目。
•
2012年:Rust的第一个编译器(rustc)实现了自举(即用Rust编写的编译器可以编译自己)。
•
2014年:Rust 0.9版本发布,从此Rust开始逐渐稳定。
•
2015年:Rust 1.0正式发布,稳定版本的Rust开始对外提供支持。
•
2016年:Rust开始获得广泛关注,社区逐渐壮大。
•
2018年:WebAssembly的推广使得Rust成为一个受欢迎的前端编程语言。
3.
社区与生态系统
随着Rust的发展,其社区和生态系统也在不断壮大。Rust编程语言被广泛应用于各种领域,如网络编程、游戏开发、操作系统、嵌入式系统、区块链等。此外,Rust已经连续多年被
Stack Overflow
开发者调查评为最受欢迎的编程语言。
Rust的成功和流行归功于其活跃的社区和丰富的第三方库。社区不断努力改进和扩展Rust的功能,使其成为一个更加实用和强大的编程语言。总的来说,Rust的历史与背景显示了一个充满创新、活力和潜力的编程语言,它将继续为现代软件开发带来更多的机会。
2.1.2 Rust的主要优势
Rust的设计目标是为程序员提供一种高性能、安全且具有现代化特性的系统编程语言。以下是Rust的一些主要优势:
1.
内存安全性
Rust通过其独特的所有权系统、生命周期和借用检查器确保了内存安全。这些功能让Rust能够在编译时检测许多常见的内存错误,如悬垂指针、空指针解引用、数据竞争等。这种设计减少了内存泄漏、悬垂指针等问题的出现,从而使得编写安全的代码变得更加容易。
2.
高性能
Rust注重零开销抽象(zero-cost abstractions),这意味着Rust提供的高级抽象不会对程序性能产生负面影响。Rust的性能与C和
C++
相当,这使得它成为一个理想的选择,尤其是对于对性能要求较高的系统编程任务。
3.
并发
友好
Rust的内存模型和类型系统让
并发
变得更加简单和安全。通过提供
原子操作
和
线程安全
的数据结构,Rust在编译时就可以预防数据竞争等多线程问题。这使得Rust在
多核处理器
和
分布式
系统领域具有优势。