资源详情

深入Rust标准库:必备的Rust语言高级指南

深入Rust标准库:必备的Rust语言高级指南-电子书下载


作者: 任成珺 等
出版社: 电子工业出版社
出品方: 博文视点
出版年: 2024-5
页数: 448
定价: 118
装帧: 平装
ISBN: 9787121475863

下载次数:23


本站推荐

书籍资料

  • 内容简介
  • 作者介绍
  • 书籍目录
《深入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.1CORE库 2
1.2ALLOC库 3
1.3STD库 4
1.4回顾 4
第2章Rust特征小议 5
2.1泛型小议 6
2.1.1基于泛型的函数及Trait 6
2.1.2泛型约束的层次 6
2.2Rust内存安全杂述 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.2MaybeUninit<T>——未初始化变量方案 23
3.2.1MaybeUn

nit<T>定义 23
3.2.2ManuallyDrop<T>定义 24
3.2.3MaybeUninit<T>构造函数 25
3.2.4MaybeUninit<T>初始化函数 26
3.2.5MaybeUninit<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.6mem模块函数 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.9drop总结 43
3.10Rust所有权、生命周期、借用探讨 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.3Option<T>类型 54
4.2.4引用类型match语法研究 59
4.2.5Result<T,E>类型 60
4.3基本Trait 64
4.3.1编译器内置MarkerTrait 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.2IteratorTrait分析 86
5.3Iterator与其他集合类型转换 89
5.4范围类型迭代器 90
5.5切片类型迭代器 93
5.6字符串类型迭代器 98
5.7数组类型迭代器 99
5.7.1成员本身迭代器 99
5.7.2成员引用迭代器 101
5.8Iterator适配器 102
5.8.1Map适配器 102
5.8.2Chain适配器 103
5.8.3其他适配器 105
5.9Option<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.1Borrow/BorrowMut分析 130
7.2Cell<T>类型分析 131
7.2.1UnsafeCell<T>分析 131
7.2.2Cell<T>分析 132
7.3RefCell<T>类型分析 134
7.3.1BorrowTrait分析 136
7.3.2BorrowMutTrait分析 138
7.3.3RefCell<T>的其他函数 140
7.4Pin<T>/UnPin<T>类型分析 142
7.5Lazy<T>类型分析 145
7.6回顾 149
第8章智能指针 150
8.1Box<T>类型分析 151
8.2RawVec<T>类型分析 155
8.3Vec<T>类型分析 161
8.3.1Vec<T>基础分析 161
8.3.2Vec<T>的IteratorTrait 170
8.4Rc<T>类型分析 173
8.4.1Rc<T>类型的构造函数及析构函数 175
8.4.2Weak<T>类型分析 179
8.4.3Rc<T>的其他函数 180
8.5Arc<T>类型分析 183
8.5.1Arc<T>类型的构造函数及析构函数 183
8.5.2Weak<T>类型分析 188
8.5.3Arc<T>的其他函数 190
8.6Cow<'a,T>类型分析 194
8.6.1ToOwnedTrait分析 194
8.6.2Cow<'a,T>分析 195
8.7LinkedList<T>类型分析 197
8.8String类型分析 203
8.8.1初识String类型分析 203
8.8.2格式化字符串分析 205
8.9回顾 216
第9章用户态标准库基础 217
9.1Rust与C语言交互 218
9.1.1C语言的类型适配 219
9.1.2C语言的va_list类型适配 221
9.1.3C语言字符串类型适配 222
9.1.4OsString代码分析 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.1OS相关适配层 251
10.3.2对外接口层 259
10.4回顾 263
第11章并发编程 264
11.1Futex分析 265
11.2Mutex<T>类型分析 267
11.2.1OS相关适配层 267
11.2.2OS无关适配层 269
11.2.3对外接口层 271
11.3Condvar类型分析 275
11.3.1OS相关适配层 275
11.3.2OS无关适配层 277
11.3.3对外接口层 278
11.4RwLock<T>类型分析 280
11.4.1OS相关适配层 280
11.4.2OS无关适配层 286
11.4.3对外接口层 287
11.5Barrier类型分析 290
11.6Once类型分析 292
11.7OnceLock<T>类型分析 296
11.8LazyLock<T>类型分析 299
11.9线程分析 300
11.9.1OS相关适配层 300
11.9.2OS无关适配层 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.4Shared类型通道 342
11.10.5对外接口层 350
11.11Rust的RUNTIME 357
11.12回顾 359
第12章文件系统 360
12.1OS相关适配层 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.1ReadTrait 384
13.1.2向量读/写类型分析 388
13.1.3对外接口层 390
13.2标准输出Stdout类型分析 405
13.3网络I/O 420
13.4回顾 420
第14章异步编程 421
14.1Rust协程框架简析 422
14.1.1协程概述 422
14.1.2Rust的I/O多路复用 423
14.2Rust协程支持类型简析 428
14.2.1Rust协程管理 428
14.2.2FutureTrait分析 429
14.3回顾 434