新書推薦:
《
心理治疗中的真意:心理治疗师的心灵之旅
》
售價:HK$
96.8
《
心理咨询与治疗技术经典入门(第3版)
》
售價:HK$
142.9
《
无冕之王:齐桓公与齐国崛起
》
售價:HK$
63.8
《
中国涉外法治蓝皮书(2024)
》
售價:HK$
98.0
《
黄庭经详解(全2册)
》
售價:HK$
141.6
《
台北故宫博物院典藏大系·绘画卷(全十册)
》
售價:HK$
9784.0
《
姑苏繁华图
》
售價:HK$
684.4
《
人的消逝:从原子弹、互联网到人工智能
》
售價:HK$
103.8
|
編輯推薦: |
Rust 2018是Rust 1.0之后的*个重要里程牌,使Rust语言有了更长足的进步。作为一本实用指南,本书将帮助你克服编写Rust代码时遇到的挑战。
本书涵盖了不同环境和体系架构设计下配置Rust的技巧,并提供了解决实际问题的方案。本书还会带你学习Rust的核心概念,使你能创建高效、高性能的应用,其中会使用各种Rust特性,如零成本抽象和改进内存管理。随着进一步的学习,你会深入了解更高级的主题(包括通道和actor),能构建可伸缩的生产级别的应用,还会学习错误处理、宏和模块化来编写可维护的代码。你会了解如何克服使用Rust实现系统编程、物联网、Web开发和网络编程时遇到的常见障碍。你还会发现Rust 2018为嵌入式程序员提供的强大功能。
学习这本书之后,你将了解如何使用Rust构建快速而安全的应用和服务。
|
內容簡介: |
本书涵盖了不同环境和体系架构设计下配置Rust的技巧,并提供了解决实际问题的方案。首先介绍了Rust的核心概念,使你能创建高效、高性能的应用,其中会使用各种Rust特性,如零成本抽象和改进内存管理。本书还深入介绍了更高级的主题包括通道和actor,能构建可伸缩的生产级别的应用,还会学习错误处理、宏和模块化来编写可维护的代码。你会了解如何克服使用Rust实现系统编程、物联网、Web开发和网络编程时遇到的常见障碍,并进一步了解Rust2018为嵌入式程序员提供的强大功能。
本书适合想要使用Rust快速开发应用实例的具有一定编程基础的人。
|
目錄:
|
目录
序
前言
第1章 Rust入门 1
1.1 建立环境 1
1.1.1 准备工作 2
1.1.2 实现过程 2
1.1.3 工作原理 4
1.2 使用命令行IO 4
1.2.1 实现过程 4
1.2.2 工作原理 6
1.3 创建和使用数据类型 7
1.3.1 实现过程 7
1.3.2 工作原理 11
1.4 控制执行流 12
1.4.1 实现过程 12
1.4.2 工作原理 15
1.5 用crate和模块划分代码 16
1.5.1 准备工作 16
1.5.2 实现过程 16
1.5.3 工作原理 21
1.6 编写测试和基准测试 22
1.6.1 准备工作 22
1.6.2 实现过程 22
1.6.3 工作原理 27
1.7 为代码提供文档 28
1.7.1 准备工作 29
1.7.2 实现过程 29
1.7.3 工作原理 32
1.8 测试你的文档 33
1.8.1 准备工作 33
1.8.2 实现过程 33
1.8.3 工作原理 37
1.9 在类型间共享代码 38
1.9.1 实现过程 38
1.9.2 工作原理 42
1.10 Rust中的序列类型 43
1.10.1 实现过程 44
1.10.2 工作原理 46
1.11 调试Rust 47
1.11.1 准备工作 47
1.11.2 实现过程 47
1.11.3 工作原理 50
第2章 高级Rust进阶 52
2.1 用枚举创建有意义的数 52
2.1.1 实现过程 52
2.1.2 工作原理 56
2.2 没有null 57
2.2.1 实现过程 57
2.2.2 工作原理 60
2.3 使用模式匹配的复杂条件 60
2.3.1 实现过程 61
2.3.2 工作原理 66
2.4 实现自定义迭代器 67
2.4.1 准备工作 67
2.4.2 实现过程 67
2.4.3 工作原理 70
2.5 高效地过滤和转换序列 71
2.5.1 准备工作 71
2.5.2 实现过程 71
2.5.3 工作原理 74
2.6 以unsafe方式读取内存 75
2.6.1 实现过程 75
2.6.2 工作原理 77
2.7 共享所有权 78
2.7.1 准备工作 78
2.7.2 实现过程 79
2.7.3 工作原理 82
2.8 共享可变所有权 82
2.8.1 准备工作 83
2.8.2 实现过程 83
2.8.3 工作原理 87
2.9 有显式生命周期的引用 88
2.9.1 实现过程 88
2.9.2 工作原理 94
2.10 用trait绑定强制行为 94
2.10.1 实现过程 94
2.10.2 工作原理 97
2.11 使用泛型数据类型 97
2.11.1 实现过程 97
2.11.2 工作原理 102
第3章 用Cargo管理项目 104
3.1 利用工作空间组织大型项目 105
3.1.1 实现过程 105
3.1.2 工作原理 108
3.2 上传到crates.io 110
3.2.1 准备工作 110
3.2.2 实现过程 110
3.2.3 工作原理 115
3.3 使用依赖和外部crate 116
3.3.1 实现过程 116
3.3.2 工作原理 120
3.3.3 参考资料 121
3.4 用子命令扩展cargo 121
3.4.1 准备工作 122
3.4.2 实现过程 122
3.4.3 工作原理 122
3.5 用cargo测试你的项目 123
3.5.1 实现过程 123
3.5.2 工作原理 127
3.6 使用cargo持续集成 128
3.6.1 准备工作 128
3.6.2 实现过程 128
3.6.3 工作原理 131
3.7 定制构建 132
3.7.1 实现过程 132
3.7.2 工作原理 134
第4章 无畏并发 136
4.1 将数据移入线程 136
4.1.1 实现过程 137
4.1.2 工作原理 140
4.2 管理多个线程 141
4.2.1 实现过程 141
4.2.2 工作原理 142
4.3 使用通道在线程间通信 143
4.3.1 实现过程 143
4.3.2 工作原理 146
4.4 共享可变状态 146
4.4.1 实现过程 146
4.4.2 工作原理 148
4.5 Rust中的多进程 149
4.5.1 实现过程 149
4.5.2 工作原理 152
4.6 使顺序代码变为并行 152
4.6.1 实现过程 152
4.6.2 工作原理 158
4.7 向量中的并发数据处理 158
4.7.1 实现过程 159
4.7.2 工作原理 166
4.8 共享不可变状态 166
4.8.1 实现过程 167
4.8.2 工作原理 171
4.9 使用actor处理异步消息 171
4.9.1 实现过程 171
4.9.2 工作原理 174
4.10 使用future的异步编程 175
4.10.1 实现过程 175
4.10.2 工作原理 176
第5章 处理错误和其他结果 178
5.1 负责任地恐慌 178
5.1.1 实现过程 178
5.1.2 工作原理 181
5.2 处理多个错误 182
5.2.1 实现过程 182
5.2.2 工作原理 184
5.3 处理异常结果 185
5.3.1 实现过程 185
5.3.2 工作原理 188
5.4 无缝的错误处理 188
5.4.1 实现过程 188
5.4.2 工作原理 190
5.5 定制错误 191
5.5.1 实现过程 191
5.5.2 工作原理 193
5.6 弹性编程 193
5.6.1 实现过程 193
5.6.2 工作原理 194
5.7 使用外部crate来完成错误处理 194
5.7.1 实现过程 195
5.7.2 工作原理 196
5.8 Option和Result间转移 197
5.8.1 实现过程 197
5.8.2 工作原理 199
第6章 用宏表达 200
6.1 在Rust中构建自定义宏 200
6.1.1 实现过程 201
6.1.2 工作原理 202
6.2 用宏实现匹配 203
6.2.1 实现过程 203
6.2.2 工作原理 205
6.3 使用预定义的宏 206
6.3.1 实现过程 206
6.3.2 工作原理 208
6.4 使用宏生成代码 209
6.4.1 实现过程 209
6.4.2 工作原理 212
6.5 宏重载 213
6.5.1 实现过程 213
6.5.2 工作原理 216
6.6 为参数范围使用重复 216
6.6.1 实现过程 217
6.6.2 工作原理 219
6.7 不要自我重复 219
6.7.1 实现过程 220
6.7.2 工作原理 222
第7章 与其他语言集成 223
7.1 包含遗留C代码 223
7.1.1 准备工作 224
7.1.2 实现过程 225
7.1.3 工作原理 229
7.2 从Node.js使用FFI调用Rust 231
7.2.1 准备工作 231
7.2.2 实现过程 232
7.2.3 工作原理 235
7.3 在浏览器中运行Rust 236
7.3.1 准备工作 236
7.3.2 实现过程 237
7.3.3 工作原理 241
7.4 使用Rust和Python 242
7.4.1 准备工作 242
7.4.2 实现过程 243
7.4.3 工作原理 249
7.5 为遗留应用生成绑定 250
7.5.1 准备工作 250
7.5.2 实现过程 251
7.5.3 工作原理 255
第8章 Web安全编程 256
8.1 建立 Web服务器 256
8.1.1 准备工作 257
8.1.2 实现过程 257
8.1.3 工作原理 262
8.2 设计RESTfulAPI 262
8.2.1 准备工作 263
8.2.2 实现过程 263
8.2.3 工作原理 268
8.3 处理JSON有效负载 269
8.3.1 准备工作 269
8.3.2 实现过程 269
8.3.3 工作原理 272
8.4 Web错误处理 272
8.4.1 准备工作 273
8.4.2 实现过程 273
8.4.3 工作原理 277
8.5 呈现HTML模板 278
8.5.1 准备工作 278
8.5.2 实现过程 279
8.5.3 工作原理 285
8.6 使用ORM将数据保存到数据库 285
8.6.1 准备工作 286
8.6.2 实现过程 286
8.6.3 工作原理 292
8.7 使用ORM运行高级查询 293
8.7.1 准备工作 294
8.7.2 实现过程 294
8.7.3 工作原理 303
8.8 Web上的认证 304
8.8.1 准备工作 305
8.8.2 实现过程 305
8.8.3 工作原理 312
第9章 简化系统编程 315
9.1 交叉编译Rust 315
9.1.1 准备工作 316
9.1.2 实现过程 316
9.1.3 工作原理 319
9.1.4 相关内容 319
9.2 创建I2C设备驱动程序 320
9.2.1 实现过程 320
9.2.2 工作原理 324
9.3 高效读取硬件传感器 325
9.3.1 实现过程 325
9.3.2 工作原理 328
第10章 Rust实战 331
10.1 生成随机数 331
10.1.1 实现过程 332
10.1.2 工作原理 335
10.2 读写文件 336
10.2.1 准备工作 336
10.2.2 实现过程 337
10.2.3 工作原理 339
10.3 解析类JSON的非结构化格式 341
10.3.1 准备工作 341
10.3.2 实现过程 341
10.3.3 工作原理 346
10.4 使用正则表达式提取文本 347
10.4.1 实现过程 347
10.4.2 工作原理 351
10.5 递归搜索文件系统 352
10.5.1 实现过程 352
10.5.2 工作原理 355
10.6 自定义命令行参数 355
10.6.1 实现过程 356
10.6.2 工作原理 362
10.7 使用管道输入数据 363
10.7.1 准备工作 363
10.7.2 实现过程 364
10.7.3 工作原理 365
10.8 发送 Web请求 366
10.8.1 实现过程 367
10.8.2 工作原理 371
10.9 运行机器学习模型 373
10.9.1 准备工作 373
10.9.2 实现过程 375
10.9.3 工作原理 381
10.10 配置和使用日志 384
10.10.1 实现过程 385
10.10.2 工作原理 389
10.11 启动子进程 390
10.11.1 实现过程 390
10.11.2 工作原理 393
|
|