深入Rust标准库:必备的Rust语言高级指南 | PDF下载|ePub下载
类别: 计算机
作者:[美] Gayle Laakmann McDowell
出版社: 人民邮电出版社
原作名: Cracking the coding interview:150 programming questions and solutions,fifth edition
译者:李琳骁/漆犇
出版年: 2013-11
页数: 372
定价: 59.00元
装帧: 平装
ISBN: 9787115332912
出版社: 人民邮电出版社
原作名: Cracking the coding interview:150 programming questions and solutions,fifth edition
译者:李琳骁/漆犇
出版年: 2013-11
页数: 372
定价: 59.00元
装帧: 平装
ISBN: 9787115332912
内容简介 · · · · · ·
《深入Rust标准库:必备的Rust语言高级指南》深入分析了Rust标准库的源代码,并厘清了分析Rust标准库源代码的脉络。全书共14章。第1章对Rust标准库体系进行了概述性介绍;第2章分析了Rust的一些独特性;第3~8章分析了CORE库与ALLOC库,这两个库可用于编写操作系统内核与用户态应用程序;第9~13章分析了STD库,STD库仅用于编写用户态应用程序;第14章对异步编程进行了简单分析。
《深入Rust标准库:必备的Rust语言高级指南》试图以标准库的源代码为基础分析Rust的一些最本质的内容,从而加快程序员掌握Rust的进程。Rust标准库也是Rust编码技巧、程序设计、架构设计的“结晶”,因此,本书大量篇幅集中在对这些内容的分析上。
作者简介 · · · · · ·
任成珺,拥有超过20年的系统级程序架构及开发经验,至今仍活跃在开发一线。
王晓娜,博士,任职于中国兵器工业集团公司北方科技信息研究所,善于深入浅出地解读艰深技术。
韩龙,硕士,任职于中信银行,从事多年IT基础设施及云服务规划与设计。
目录 · · · · · ·
第1章 Rust标准库体系概述 1
1.1 CORE库 2
1.2 ALLOC库 3
1.3 STD库 4
1.4 回顾 4
第2章 Rust特征小议 5
2.1 泛型小议 6
2.1.1 基于泛型的函数及Trait 6
2.1.2 泛型约束的层次 6
2.2 Rust内存安全杂述 7
2.3 获取封装类型变量的内部变量 9
2.3.1 使用“?”运算符解封装 9
2.3.2 函数调用+自动解引用 10
2.3.3 采用闭包 10
2.3.4 获取引用 11
2.3.5 获取所有权 11
2.4 回顾 12
第3章 内存操作 13
3.1 裸指针——不安全的根源 15
3.1.1 裸指针具体实现 16
3.1.2 固有模块裸指针关联函数 18
3.1.3 裸指针操作 19
3.1.4 裸指针番外 22
3.2 MaybeUninit<T>——未初始化变量方案 23
3.2.1 MaybeUninit<T>定义 23
3.2.2 ManuallyDrop<T>定义 24
3.2.3 MaybeUninit<T>构造函数 25
3.2.4 MaybeUninit<T>初始化函数 26
3.2.5 MaybeUninit<T>数组类型操作 27
3.2.6 典型案例 28
3.3 裸指针再论 29
3.4 非空裸指针——NonNull<T> 30
3.4.1 构造关联函数 31
3.4.2 类型转换函数 32
3.4.3 其他函数 32
3.5 智能指针的基座——Unique<T> 33
3.6 mem模块函数 34
3.6.1 构造泛型变量函数 34
3.6.2 泛型变量所有权转移函数 34
3.6.3 其他函数 36
3.7 动态内存申请及释放 36
3.7.1 内存布局 36
3.7.2 动态内存申请与释放接口 38
3.8 全局变量内存探讨 42
3.9 drop总结 43
3.10 Rust所有权、生命周期、借用探讨 44
3.11 回顾 47
第4章 基本类型及基本Trait 48
4.1 固有函数库 49
4.1.1 原子操作函数 49
4.1.2 数学函数及位操作函数 49
4.1.3 指令预取优化函数、断言类函数及栈获取函数 49
4.2 基本类型分析 49
4.2.1 整数类型 50
4.2.2 浮点类型 53
4.2.3 Option<T>类型 54
4.2.4 引用类型match语法研究 59
4.2.5 Result<T,E>类型 60
4.3 基本Trait 64
4.3.1 编译器内置Marker Trait 64
4.3.2 算术运算符Trait 67
4.3.3 “?”运算符Trait 74
4.3.4 范围运算符Trait 76
4.3.5 索引运算符Trait 78
4.4 回顾 83
第5章 迭代器 84
5.1 三种迭代器 85
5.2 Iterator Trait分析 86
5.3 Iterator与其他集合类型转换 89
5.4 范围类型迭代器 90
5.5 切片类型迭代器 93
5.6 字符串类型迭代器 98
5.7 数组类型迭代器 99
5.7.1 成员本身迭代器 99
5.7.2 成员引用迭代器 101
5.8 Iterator适配器 102
5.8.1 Map适配器 102
5.8.2 Chain适配器 103
5.8.3 其他适配器 105
5.9 Option<T>适配器 105
5.10 回顾 106
第6章 基本类型(续) 107
6.1 整数类型 108
6.2 布尔类型 109
6.3 字符类型 110
6.4 字符串类型 114
6.5 切片类型 126
6.6 回顾 128
第7章 内部可变性类型 129
7.1 Borrow/BorrowMut分析 130
7.2 Cell<T>类型分析 131
7.2.1 UnsafeCell<T>分析 131
7.2.2 Cell<T>分析 132
7.3 RefCell<T>类型分析 134
7.3.1 Borrow Trait分析 136
7.3.2 BorrowMut Trait分析 138
7.3.3 RefCell<T>的其他函数 140
7.4 Pin<T>/UnPin<T>类型分析 142
7.5 Lazy<T>类型分析 145
7.6 回顾 149
第8章 智能指针 150
8.1 Box<T>类型分析 151
8.2 RawVec<T>类型分析 155
8.3 Vec<T>类型分析 161
8.3.1 Vec<T>基础分析 161
8.3.2 Vec<T>的Iterator Trait 170
8.4 Rc<T>类型分析 173
8.4.1 Rc<T>类型的构造函数及析构函数 175
8.4.2 Weak<T>类型分析 179
8.4.3 Rc<T>的其他函数 180
8.5 Arc<T>类型分析 183
8.5.1 Arc<T>类型的构造函数及析构函数 183
8.5.2 Weak<T>类型分析 188
8.5.3 Arc<T>的其他函数 190
8.6 Cow<‘a, T>类型分析 194
8.6.1 ToOwned Trait分析 194
8.6.2 Cow<‘a, T>分析 195
8.7 LinkedList<T>类型分析 197
8.8 String类型分析 203
8.8.1 初识String类型分析 203
8.8.2 格式化字符串分析 205
8.9 回顾 216
第9章 用户态标准库基础 217
9.1 Rust与C语言交互 218
9.1.1 C语言的类型适配 219
9.1.2 C语言的va_list类型适配 221
9.1.3 C语言字符串类型适配 222
9.1.4 OsString代码分析 228
9.2 代码工程中的一个技巧 229
9.3 内存管理之STD库 230
9.4 系统调用(SYSCALL)的封装 236
9.5 文件描述符及句柄 237
9.5.1 文件描述符所有权设计 237
9.5.2 文件逻辑操作适配层 241
9.6 回顾 244
第10章 进程管理 245
10.1 匿名管道 247
10.2 重定向实现分析 248
10.3 进程管理 251
10.3.1 OS相关适配层 251
10.3.2 对外接口层 259
10.4 回顾 263
第11章 并发编程 264
11.1 Futex分析 265
11.2 Mutex<T>类型分析 267
11.2.1 OS相关适配层 267
11.2.2 OS无关适配层 269
11.2.3 对外接口层 271
11.3 Condvar类型分析 275
11.3.1 OS相关适配层 275
11.3.2 OS无关适配层 277
11.3.3 对外接口层 278
11.4 RwLock<T>类型分析 280
11.4.1 OS相关适配层 280
11.4.2 OS无关适配层 286
11.4.3 对外接口层 287
11.5 Barrier类型分析 290
11.6 Once类型分析 292
11.7 OnceLock<T>类型分析 296
11.8 LazyLock<T>类型分析 299
11.9 线程分析 300
11.9.1 OS相关适配层 300
11.9.2 OS无关适配层 311
11.9.3 对外接口层 313
11.10 线程消息通信——MPSC 332
11.10.1 消息队列类型——Queue<T> 334
11.10.2 阻塞及唤醒信号机制 336
11.10.3 一次性通信通道机制 338
11.10.4 Shared类型通道 342
11.10.5 对外接口层 350
11.11 Rust的RUNTIME 357
11.12 回顾 359
第12章 文件系统 360
12.1 OS相关适配层 361
12.1.1 路径名类型分析 361
12.1.2 普通文件操作分析 362
12.1.3 目录操作分析 371
12.2 对外接口层 377
12.3 回顾 381
第13章 I/O系统 382
13.1 标准输入Stdin类型分析 383
13.1.1 Read Trait 384
13.1.2 向量读/写类型分析 388
13.1.3 对外接口层 390
13.2 标准输出Stdout类型分析 405
13.3 网络I/O 420
13.4 回顾 420
第14章 异步编程 421
14.1 Rust协程框架简析 422
14.1.1 协程概述 422
14.1.2 Rust的I/O多路复用 423
14.2 Rust协程支持类型简析 428
14.2.1 Rust协程管理 428
14.2.2 Future Trait分析 429
14.3 回顾 434
· · · · · ·
1.1 CORE库 2
1.2 ALLOC库 3
1.3 STD库 4
1.4 回顾 4
第2章 Rust特征小议 5
2.1 泛型小议 6
2.1.1 基于泛型的函数及Trait 6
2.1.2 泛型约束的层次 6
2.2 Rust内存安全杂述 7
2.3 获取封装类型变量的内部变量 9
2.3.1 使用“?”运算符解封装 9
2.3.2 函数调用+自动解引用 10
2.3.3 采用闭包 10
2.3.4 获取引用 11
2.3.5 获取所有权 11
2.4 回顾 12
第3章 内存操作 13
3.1 裸指针——不安全的根源 15
3.1.1 裸指针具体实现 16
3.1.2 固有模块裸指针关联函数 18
3.1.3 裸指针操作 19
3.1.4 裸指针番外 22
3.2 MaybeUninit<T>——未初始化变量方案 23
3.2.1 MaybeUninit<T>定义 23
3.2.2 ManuallyDrop<T>定义 24
3.2.3 MaybeUninit<T>构造函数 25
3.2.4 MaybeUninit<T>初始化函数 26
3.2.5 MaybeUninit<T>数组类型操作 27
3.2.6 典型案例 28
3.3 裸指针再论 29
3.4 非空裸指针——NonNull<T> 30
3.4.1 构造关联函数 31
3.4.2 类型转换函数 32
3.4.3 其他函数 32
3.5 智能指针的基座——Unique<T> 33
3.6 mem模块函数 34
3.6.1 构造泛型变量函数 34
3.6.2 泛型变量所有权转移函数 34
3.6.3 其他函数 36
3.7 动态内存申请及释放 36
3.7.1 内存布局 36
3.7.2 动态内存申请与释放接口 38
3.8 全局变量内存探讨 42
3.9 drop总结 43
3.10 Rust所有权、生命周期、借用探讨 44
3.11 回顾 47
第4章 基本类型及基本Trait 48
4.1 固有函数库 49
4.1.1 原子操作函数 49
4.1.2 数学函数及位操作函数 49
4.1.3 指令预取优化函数、断言类函数及栈获取函数 49
4.2 基本类型分析 49
4.2.1 整数类型 50
4.2.2 浮点类型 53
4.2.3 Option<T>类型 54
4.2.4 引用类型match语法研究 59
4.2.5 Result<T,E>类型 60
4.3 基本Trait 64
4.3.1 编译器内置Marker Trait 64
4.3.2 算术运算符Trait 67
4.3.3 “?”运算符Trait 74
4.3.4 范围运算符Trait 76
4.3.5 索引运算符Trait 78
4.4 回顾 83
第5章 迭代器 84
5.1 三种迭代器 85
5.2 Iterator Trait分析 86
5.3 Iterator与其他集合类型转换 89
5.4 范围类型迭代器 90
5.5 切片类型迭代器 93
5.6 字符串类型迭代器 98
5.7 数组类型迭代器 99
5.7.1 成员本身迭代器 99
5.7.2 成员引用迭代器 101
5.8 Iterator适配器 102
5.8.1 Map适配器 102
5.8.2 Chain适配器 103
5.8.3 其他适配器 105
5.9 Option<T>适配器 105
5.10 回顾 106
第6章 基本类型(续) 107
6.1 整数类型 108
6.2 布尔类型 109
6.3 字符类型 110
6.4 字符串类型 114
6.5 切片类型 126
6.6 回顾 128
第7章 内部可变性类型 129
7.1 Borrow/BorrowMut分析 130
7.2 Cell<T>类型分析 131
7.2.1 UnsafeCell<T>分析 131
7.2.2 Cell<T>分析 132
7.3 RefCell<T>类型分析 134
7.3.1 Borrow Trait分析 136
7.3.2 BorrowMut Trait分析 138
7.3.3 RefCell<T>的其他函数 140
7.4 Pin<T>/UnPin<T>类型分析 142
7.5 Lazy<T>类型分析 145
7.6 回顾 149
第8章 智能指针 150
8.1 Box<T>类型分析 151
8.2 RawVec<T>类型分析 155
8.3 Vec<T>类型分析 161
8.3.1 Vec<T>基础分析 161
8.3.2 Vec<T>的Iterator Trait 170
8.4 Rc<T>类型分析 173
8.4.1 Rc<T>类型的构造函数及析构函数 175
8.4.2 Weak<T>类型分析 179
8.4.3 Rc<T>的其他函数 180
8.5 Arc<T>类型分析 183
8.5.1 Arc<T>类型的构造函数及析构函数 183
8.5.2 Weak<T>类型分析 188
8.5.3 Arc<T>的其他函数 190
8.6 Cow<‘a, T>类型分析 194
8.6.1 ToOwned Trait分析 194
8.6.2 Cow<‘a, T>分析 195
8.7 LinkedList<T>类型分析 197
8.8 String类型分析 203
8.8.1 初识String类型分析 203
8.8.2 格式化字符串分析 205
8.9 回顾 216
第9章 用户态标准库基础 217
9.1 Rust与C语言交互 218
9.1.1 C语言的类型适配 219
9.1.2 C语言的va_list类型适配 221
9.1.3 C语言字符串类型适配 222
9.1.4 OsString代码分析 228
9.2 代码工程中的一个技巧 229
9.3 内存管理之STD库 230
9.4 系统调用(SYSCALL)的封装 236
9.5 文件描述符及句柄 237
9.5.1 文件描述符所有权设计 237
9.5.2 文件逻辑操作适配层 241
9.6 回顾 244
第10章 进程管理 245
10.1 匿名管道 247
10.2 重定向实现分析 248
10.3 进程管理 251
10.3.1 OS相关适配层 251
10.3.2 对外接口层 259
10.4 回顾 263
第11章 并发编程 264
11.1 Futex分析 265
11.2 Mutex<T>类型分析 267
11.2.1 OS相关适配层 267
11.2.2 OS无关适配层 269
11.2.3 对外接口层 271
11.3 Condvar类型分析 275
11.3.1 OS相关适配层 275
11.3.2 OS无关适配层 277
11.3.3 对外接口层 278
11.4 RwLock<T>类型分析 280
11.4.1 OS相关适配层 280
11.4.2 OS无关适配层 286
11.4.3 对外接口层 287
11.5 Barrier类型分析 290
11.6 Once类型分析 292
11.7 OnceLock<T>类型分析 296
11.8 LazyLock<T>类型分析 299
11.9 线程分析 300
11.9.1 OS相关适配层 300
11.9.2 OS无关适配层 311
11.9.3 对外接口层 313
11.10 线程消息通信——MPSC 332
11.10.1 消息队列类型——Queue<T> 334
11.10.2 阻塞及唤醒信号机制 336
11.10.3 一次性通信通道机制 338
11.10.4 Shared类型通道 342
11.10.5 对外接口层 350
11.11 Rust的RUNTIME 357
11.12 回顾 359
第12章 文件系统 360
12.1 OS相关适配层 361
12.1.1 路径名类型分析 361
12.1.2 普通文件操作分析 362
12.1.3 目录操作分析 371
12.2 对外接口层 377
12.3 回顾 381
第13章 I/O系统 382
13.1 标准输入Stdin类型分析 383
13.1.1 Read Trait 384
13.1.2 向量读/写类型分析 388
13.1.3 对外接口层 390
13.2 标准输出Stdout类型分析 405
13.3 网络I/O 420
13.4 回顾 420
第14章 异步编程 421
14.1 Rust协程框架简析 422
14.1.1 协程概述 422
14.1.2 Rust的I/O多路复用 423
14.2 Rust协程支持类型简析 428
14.2.1 Rust协程管理 428
14.2.2 Future Trait分析 429
14.3 回顾 434
· · · · · ·
发表回复
要发表评论,您必须先登录。