图书介绍
Rust编程之道PDF|Epub|txt|kindle电子书版本网盘下载
- 张汉东著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121354854
- 出版时间:2019
- 标注页数:556页
- 文件大小:57MB
- 文件页数:579页
- 主题词:程序语言-程序设计
PDF下载
下载说明
Rust编程之道PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 新时代的语言1
1.1缘起1
1.2设计哲学3
1.2.1内存安全3
1.2.2零成本抽象4
1.2.3实用性5
1.3现状与未来7
1.3.1语言架构8
1.3.2开源社区9
1.3.3发展前景9
1.4 Rust代码如何执行10
1.5小结10
第2章 语言精要11
2.1 Rust语言的基本构成11
2.1.1语言规范11
2.1.2编译器12
2.1.3核心库12
2.1.4标准库12
2.1.5包管理器13
2.2语句与表达式13
2.3变量与绑定14
2.3.1位置表达式和值表达式15
2.3.2不可变绑定与可变绑定15
2.3.3所有权与引用16
2.4函数与闭包17
2.4.1函数定义17
2.4.2作用域与生命周期18
2.4.3函数指针19
2.4.5 CTFE机制20
2.4.6闭包20
2.5流程控制22
2.5.1条件表达式22
2.5.2循环表达式23
2.5.3 match表达式与模式匹配24
2.5.4 if let和while let表达式25
2.6基本数据类型26
2.6.1布尔类型26
2.6.2基本数字类型26
2.6.3字符类型27
2.6.4数组类型28
2.6.5范围类型29
2.6.6切片类型29
2.6.7 str字符串类型30
2.6.8原生指针31
2.6.9 never类型31
2.7复合数据类型32
2.7.1元组32
2.7.2结构体33
2.7.3枚举体36
2.8常用集合类型38
2.8.1线性序列:向量38
2.8.2线性序列:双端队列39
2.8.3线性序列:链表40
2.8.4 Key-Value映射表:HashMap和BTreeMap40
2.8.5集合:HashSet和BTreeSet41
2.8.6优先队列:BinaryHeap42
2.9智能指针42
2.10泛型和trait43
2.10.1泛型43
2.10.2 trait44
2.11错误处理47
2.12表达式优先级48
2.13注释与打印48
2.14小结50
第3章 类型系统51
3.1通用概念51
3.1.1类型系统的作用51
3.1.2类型系统的分类52
3.1.3类型系统与多态性53
3.2 Rust类型系统概述53
3.2.1类型大小53
3.2.2类型推导58
3.3泛型60
3.3.1泛型函数60
3.3.2泛型返回值自动推导62
3.4深入trait62
3.4.1接口抽象63
3.4.2泛型约束69
3.4.3抽象类型71
3.4.4标签trait77
3.5类型转换83
3.5.1 Deref解引用83
3.5.2 as操作符86
3.5.3 From和Into88
3.6当前trait系统的不足89
3.6.1孤儿规则的局限性90
3.6.2代码复用的效率不高91
3.6.3抽象表达能力有待改进93
3.7小结94
第4章 内存管理95
4.1通用概念95
4.1.1栈96
4.1.2堆99
4.1.3内存布局101
4.2 Rust中的资源管理103
4.2.1变量和函数103
4.2.2智能指针与RAII106
4.2.3内存泄漏与内存安全110
4.2.4复合类型的内存分配和布局115
4.3小结117
第5章 所有权系统119
5.1通用概念120
5.2所有权机制123
5.3绑定、作用域和生命周期125
5.3.1不可变与可变126
5.3.2绑定的时间属性——生命周期127
5.4所有权借用131
5.5生命周期参数135
5.5.1显式生命周期参数136
5.5.2省略生命周期参数143
5.5.3生命周期限定145
5.5.4 trait对象的生命周期145
5.6智能指针与所有权146
5.6.1共享所有权Rc<T>和Weak<T>149
5.6.2内部可变性Cell<T>和RefCell<T>151
5.6.3写时复制Cow<T>153
5.7并发安全与所有权156
5.8非词法作用域生命周期157
5.9小结161
第6章 函数、闭包与迭代器162
6.1函数162
6.1.1函数屏蔽164
6.1.2函数参数模式匹配164
6.1.3函数返回值165
6.1.4泛型函数166
6.1.5方法与函数167
6.1.6高阶函数168
6.2闭包171
6.2.1闭包的基本语法172
6.2.2闭包的实现173
6.2.3闭包与所有权178
6.2.4闭包作为函数参数和返回值184
6.2.5高阶生命周期190
6.3迭代器194
6.3.1外部迭代器和内部迭代器194
6.3.2 Iterator trait195
6.3.3 IntoIterator trait和迭代器199
6.3.4迭代器适配器202
6.3.5消费器207
6.3.6自定义迭代器适配器211
6.4小结214
第7章 结构化编程216
7.1面向对象风格编程217
7.1.1结构体217
7.1.2枚举体225
7.1.3析构顺序230
7.2常用设计模式233
7.2.1建造者模式234
7.2.2访问者模式236
7.2.3 RAII模式239
7.3小结243
第8章 字符串与集合类型244
8.1字符串244
8.1.1字符编码244
8.1.2字符247
8.1.3字符串分类249
8.1.4字符串的两种处理方式251
8.1.5字符串的修改253
8.1.6字符串的查找256
8.1.7与其他类型相互转换265
8.1.8回顾270
8.2集合类型271
8.2.1动态可增长数组271
8.2.2映射集281
8.3理解容量289
8.4小结292
第9章 构建健壮的程序294
9.1通用概念294
9.2消除失败295
9.3分层处理错误297
9.3.1可选值 Option<T>298
9.3.2错误处理Result<T,E>302
9.4恐慌(Panic)314
9.5第三方库316
9.6小结319
第10章 模块化编程320
10.1包管理321
10.1.1使用Cargo创建包321
10.1.2使用第三方包323
10.1.3 Cargo.toml文件格式331
10.1.4自定义Cargo337
10.2模块系统339
10.3从零开始实现一个完整功能包344
10.3.1使用Cargo创建新项目345
10.3.2使用structopt解析命令行参数345
10.3.3定义统一的错误类型347
10.3.4读取CSV文件348
10.3.5替换CSV文件中的内容351
10.3.6进一步完善包353
10.4可见性和私有性358
10.5小结360
第11章 安全并发362
11.1通用概念362
11.1.1多进程和多线程363
11.1.2事件驱动、异步回调和协程364
11.1.3线程安全365
11.2多线程并发编程370
11.2.1线程管理371
11.2.2 Send和Sync375
11.2.3使用锁进行线程同步379
11.2.4屏障和条件变量384
11.2.5原子类型386
11.2.6使用Channel进行线程间通信388
11.2.7内部可变性探究397
11.2.8线程池399
11.2.9使用Rayon执行并行任务407
11.2.10使用Crossbeam409
11.3异步并发412
11.3.1生成器413
11.3.2 Future并发模式418
11.3.3 async/await421
11.4数据并行428
11.4.1什么是SIMD429
11.4.2在Rust中使用SIMD430
11.5小结434
第12章 元编程435
12.1反射436
12.1.1通过is函数判断类型436
12.1.2转换到具体类型437
12.1.3非静态生命周期类型439
12.2宏系统440
12.2.1起源440
12.2.2 Rust中宏的种类441
12.2.3编译过程442
12.2.4声明宏445
12.2.5过程宏458
12.3编译器插件472
12.4小结475
第13章 超越安全的边界477
13.1 Unsafe Rust介绍477
13.1.1 Unsafe语法478
13.1.2访问和修改可变静态变量480
13.1.3 Union联合体480
13.1.4解引用原生指针483
13.2基于Unsafe进行安全抽象484
13.2.1原生指针484
13.2.2子类型与型变489
13.2.3未绑定生命周期494
13.2.4 Drop检查495
13.2.5 NonNull<T>指针505
13.2.6 Unsafe与恐慌安全508
13.2.7堆内存分配508
13.2.8混合代码内存安全架构三大原则510
13.3和其他语言交互510
13.3.1外部函数接口510
13.3.2与C/C++语言交互514
13.3.3使用Rust提升动态语言性能528
13.4 Rust与WebAssembly532
13.4.1 WebAssembly要点介绍533
13.4.2使用Rust开发WebAssembly539
13.4.3打造WebAssembly开发生态541
13.5小结543
附录A Rust开发环境指南544
附录B Rust如何调试代码549