图书介绍

深入浅出Rust2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

深入浅出Rust
  • 范长春著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111606420
  • 出版时间:2018
  • 标注页数:389页
  • 文件大小:54MB
  • 文件页数:405页
  • 主题词:程序语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

深入浅出RustPDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 基础知识2

第1章 与君初相见2

1.1 版本和发布策略2

1.2 安装开发环境4

1.3 HelloWorld7

1.4 Prelude8

1.5 Format格式详细说明8

第2章 变量和类型10

2.1 变量声明10

2.1.1 变量遮蔽12

2.1.2 类型推导13

2.1.3 类型别名14

2.1.4 静态变量15

2.1.5 常量16

2.2 基本数据类型16

2.2.1 bool16

2.2.2 char17

2.2.3 整数类型17

2.2.4 整数溢出19

2.2.5 浮点类型21

2.2.6 指针类型23

2.2.7 类型转换23

2.3 复合数据类型24

2.3.1 tuple25

2.3.2 struct25

2.3.3 tuple struct27

2.3.4 enum29

2.3.5 类型递归定义32

第3章 语句和表达式34

3.1 语句34

3.2 表达式34

3.2.1 运算表达式35

3.2.2 赋值表达式37

3.2.3 语句块表达式38

3.3 if-else39

3.3.1 loop40

3.3.2 while41

3.3.3 for循环42

第4章 函数44

4.1 简介44

4.2 发散函数46

4.3 main函数47

4.4 const fn48

4.5 函数递归调用49

第5章 trait50

5.1 成员方法50

5.2 静态方法53

5.3 扩展方法55

5.4 完整函数调用语法56

5.5 trait约束和继承58

5.6 Derive59

5.7 trait别名60

5.8 标准库中常见的trait简介61

5.8.1 Display和Debug61

5.8.2 PartialOrd/Ord/PartialEq/Eq62

5.8.3 Sized63

5.8.4 Default64

5.9 总结65

第6章 数组和字符串66

6.1 数组66

6.1.1 内置方法67

6.1.2 多维数组67

6.1.3 数组切片67

6.1.4 DST和胖指针68

6.1.5 Range70

6.1.6 边界检查72

6.2 字符串74

6.2.1 &str74

6.2.2 String75

第7章 模式解构77

7.1 简介77

7.2 match78

7.2.1 exhaustive79

7.2.2 下划线80

7.2.3 match也是表达式82

7.2.4 Guards83

7.2.5 变量绑定84

7.2.6 ref和mut85

7.3 if-1et和while-1et88

7.4 函数和闭包参数做模式解构89

7.5 总结90

第8章 深入类型系统91

8.1 代数类型系统91

8.2 Never Type94

8.3 再谈Option类型97

第9章 宏102

9.1 简介macro102

9.1.1 实现编译阶段检查102

9.1.2 实现编译期计算103

9.1.3 实现自动代码生成103

9.1.4 实现语法扩展103

9.2 示范型宏103

9.3 宏1.1105

第二部分 内存安全110

第10章 内存管理基础110

10.1 堆和栈110

10.2 段错误111

10.3 内存安全112

第11章 所有权和移动语义114

11.1 什么是所有权114

11.2 移动语义116

11.3 复制语义118

11.4 Box类型120

11.5 Clone VS.Copy121

11.5.1 Copy的含义121

11.5.2 Copy的实现条件121

11.5.3 Clone的含义122

11.5.4 自动derive123

11.5.5 总结123

11.6 析构函数124

11.6.1 资源管理125

11.6.2 主动析构126

11.6.3 DropVS.Copy129

11.6.4 析构标记129

第12章 借用和生命周期132

12.1 生命周期132

12.2 借用132

12.3 借用规则134

12.4 生命周期标记136

12.4.1 函数的生命周期标记136

12.4.2 类型的生命周期标记138

12.5 省略生命周期标记139

第13章 借用检查141

13.1 编译错误示例142

13.2 内存不安全示例:修改枚举143

13.3 内存不安全示例:迭代器失效144

13.4 内存不安全示例:悬空指针146

13.5 小结148

第14章 NLL(Non-Lexical-Lifetime)150

14.1 NLL希望解决的问题150

14.2 NLL的原理154

14.3 小结157

第15章 内部可变性158

15.1 Cell158

15.2 RefCell161

15.3 UnsafeCell164

第16章 解引用169

16.1 自定义解引用169

16.2 自动解引用171

16.3 自动解引用的用处171

16.4 有时候需要手动处理173

16.5 智能指针175

16.5.1 引用计数175

16.5.2 Cow178

16.6 小结180

第17章 泄漏181

17.1 内存泄漏181

17.2 内存泄漏属于内存安全184

17.3 析构函数泄漏185

第18章 Panic190

18.1 什么是panic190

18.2 Panic实现机制191

18.3 Panic Safety192

18.4 小结197

第19章 Unsafe198

19.1 unsafe关键字198

19.2 裸指针199

19.3 内置函数201

19.3.1 transmute201

19.3.2 内存读写202

19.3.3 综合示例204

19.4 分割借用206

19.5 协变209

19.5.1 什么是协变209

19.5.2 PhantomData211

19.6 未定义行为214

19.7 小结215

第20章 Vec源码分析216

20.1 内存申请217

20.2 内存扩容220

20.3 内存释放222

20.3.1 Vec的析构函数222

20.3.2 DropCheck223

20.4 不安全的边界226

20.5 自定义解引用227

20.6 迭代器228

20.7 panic safety231

第三部分 高级抽象234

第21章 泛型234

21.1 数据结构中的泛型234

21.2 函数中的泛型235

21.3 impl块中的泛型237

21.4 泛型参数约束237

21.5 关联类型241

21.6 何时使用关联类型244

21.7 泛型特化246

21.7.1 特化的意义247

21.7.2 default上下文关键字248

21.7.3 交叉impl250

第22章 闭包252

22.1 变量捕获254

22.2 move关键字256

22.3 Fn/FnMut/FnOnce257

22.4 闭包与泛型259

22.5 闭包与生命周期261

第23章 动态分派和静态分派264

23.1 trait object265

23.2 object safe268

23.3 impltrait271

第24章 容器与迭代器275

24.1 容器275

24.1.1 Vec275

24.1.2 VecDeque277

24.1.3 HashMap277

24.1.4 BTreeMap281

24.2 迭代器283

24.2.1 实现迭代器283

24.2.2 迭代器的组合284

24.2.3 for循环285

第25章 生成器289

25.1 简介289

25.2 对比迭代器291

25.3 对比立即求值292

25.4 生成器的原理293

25.4.1 生成器原理简介293

25.4.2 自引用类型297

25.5 协程简介298

第26章 标准库简介302

26.1 类型转换302

26.1.1 AsRef/AsMut302

26.1.2 Borrow/BorrowMut303

26.1.3 From/Into304

26.1.4 ToOwned305

26.1.5 ToString/FromStr305

26.2 运算符重载306

26.3 I/O308

26.3.1 平台相关字符串308

26.3.2 文件和路径309

26.3.3 标准输入输出310

26.3.4 进程启动参数311

26.4 Any311

第四部分 线程安全314

第27章 线程安全314

27.1 什么是线程314

27.2 启动线程316

27.3 免数据竞争317

27.4 Send&Sync320

第28章 详解Send和Sync321

28.1 什么是Send321

28.2 什么是Sync322

28.3 自动推理323

28.4 小结324

第29章 状态共享325

29.1 Arc325

29.2 Mutex326

29.3 RwLock328

29.4 Atomic329

29.5 死锁331

29.6 Barrier333

29.7 Condvar334

29.8 全局变量335

29.9 线程局部存储336

29.10 总结337

第30章 管道339

30.1 异步管道339

30.2 同步管道341

第31章 第三方并行开发库343

31.1 threadpool343

31.2 scoped-threadpool344

31.3 parking_lot345

31.4 crossbeam345

31.5 rayon346

第五部分 实用设施350

第32章 项目和模块350

32.1 cargo350

32.2 项目依赖353

32.2.1 配置355

32.2.2 workspace355

32.2.3 build.rs356

32.3 模块管理358

32.3.1 文件组织358

32.3.2 可见性360

32.3.3 use关键字362

第33章 错误处理364

33.1 基本错误处理364

33.2 组合错误类型366

33.3 问号运算符367

33.4 main函数中使用问号运算符372

33.5 新的Failure库373

第34章 FFI375

34.1 什么是FFI375

34.2 从C调用Rust库376

34.3 从Rust调用C库378

34.4 更复杂的数据类型378

第35章 文档和测试381

35.1 文档381

35.2 测试382

附录 词汇表387

热门推荐