×
暂无评论
图文详情
  • ISBN:9787519849894
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:23cm
  • 页数:393页
  • 出版时间:2021-01-01
  • 条形码:9787519849894 ; 978-7-5198-4989-4

本书特色

Rust 2018是Rust 1.0之后的**个重要里程牌,使Rust语言有了更长足的进步。作为一本实用指南,本书将帮助你克服编写Rust代码时遇到的挑战。 本书涵盖了不同环境和体系架构设计下配置Rust的技巧,并提供了解决实际问题的方案。本书还会带你学习Rust的核心概念,使你能创建高效、高性能的应用,其中会使用各种Rust特性,如零成本抽象和改进内存管理。随着进一步的学习,你会深入了解更高级的主题(包括通道和actor),能构建可伸缩的生产级别的应用,还会学习错误处理、宏和模块化来编写可维护的代码。你会了解如何克服使用Rust实现系统编程、物联网、Web开发和网络编程时遇到的常见障碍。你还会发现Rust 2018为嵌入式程序员提供的强大功能。 学习这本书之后,你将了解如何使用Rust构建快速而安全的应用和服务。 本书对Rust语言的系统化讲解帮助读者理清知识脉络,结合案例便于读者巩固理论知识,熟悉Rust在实际中的应用。

内容简介

这本Rust书涵盖了为不同的环境和建筑设计配置Rust的方法, 并提供了针对实际问题的解决方案。它还将带你了解Rust的核心概念, 帮助你创建高效、高性能的应用程序, 这些应用程序使用零成本抽象和改进的内存管理等功能。你将进一步深入研究更高级的主题, 包括渠道和参与者, 以构建可扩展的生产级应用程序, 甚至掌握错误处理, 宏和模块化以编写可维护的代码。然后, 你将学习如何在使用Rust进行系统编程、IoT、Web开发和网络编程时克服常见的障碍。*后, 你将了解Rust 2018为嵌入式程序提供的功能。

目录

目录

前言
第1章 Rust入门 1
1.1 建立环境 1
1.1.1 准备工作 2
1.1.2 实现过程 2
1.1.3 工作原理 4
1.2 使用命令行I/O 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

展开全部

作者简介

克劳斯·马特辛格(Claus Matzinger)是一位有丰富背景的软件工程师,任职于一家为嵌入式设备维护代码的小公司之后,他加入了一家大公司,从事遗留Smalltalk应用的工作。这使他对早期的编程语言产生了浓厚兴趣,Claus后来成为一家基于Scala技术的健康游戏创业公司的CTO。在此之后,Claus开始转变角色,在物联网数据库技术创业公司Crate IO(这家公司创建了CrateDB)转入面向客户的职位,*近进入了Microsoft。在这里,他主办了一个播客,会与客户一起编写代码,通过博客发表这些合作得到的解决方案。5年多来,Claus一直在通过软件帮助客户创新,以及取得并保持成功。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航