• 精通Rust第2版
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

精通Rust第2版

64.62 4.6折 139 九品

仅1件

北京东城
认证卖家担保交易快速发货售后保障

作者[印】 拉胡尔·沙玛【芬]韦萨·凯拉维塔(Rahul Sharma) 著;邓世超 译

出版社人民邮电出版社

出版时间2021-01

版次2

装帧平装

上书时间2024-10-14

图书-天下的书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 [印】 拉胡尔·沙玛【芬]韦萨·凯拉维塔(Rahul Sharma) 著;邓世超 译
  • 出版社 人民邮电出版社
  • 出版时间 2021-01
  • 版次 2
  • ISBN 9787115552549
  • 定价 139.00元
  • 装帧 平装
  • 开本 16开
  • 页数 454页
  • 字数 0.59千字
【内容简介】

Rust是一门系统编程语言,是支持函数式、命令式以及泛型等编程范式的多范式语言。Rust在语法上和C++类似。Rust快速、可靠、安全,它提供了甚至超过C/C++的性能和安全保证,同时它也是一种学习曲线比较平滑的热门编程语言。

 


 

本书内容共17章,由浅入深地讲解Rust相关的知识,涉及基础语法、软件包管理器、测试工具、类型系统、内存管理、异常处理、高级类型、并发模型、宏、外部函数接口、网络编程、HTTP、数据库、WebAssembly、GTK+框架和GDB调试等重要知识点。

 


 

本书适合想学习Rust编程的读者阅读,希望读者能够对C、C++或者Python有一些了解。书中丰富的代码示例和详细的讲解能够帮助读者快速上手,高效率掌握Rust编程。

 


【作者简介】

拉胡尔.沙玛(Rahul Sharma)对编程教学一直充满热情,过去两年他一直在从事软件开发相关的工作。他在开发Servo时开始接触Rust,Servo是由Mozilla Research公司开发的浏览器引擎,是他的GSoC项目的一部分。目前他供职于AtherEnergy公司,正在为智能滑板车构建弹性的云基础架构。他感兴趣的领域包括系统编程、分布式系统、编译器及类型理论等。他也是Rust社区的特约撰稿人,并在Mozilla的Servo项目中指导实习生。

 


 

韦萨.凯拉维塔(Vesa Kaihlavirta)从5岁起就开始接触编程,并且是从C64 BASIC开始入门的。他的职业目标是提高软件应用领域的开发者对编程语言和软件质量的认识。他是一名资深的Linux开发人员,并且已经在电信和金融行业工作了10年。Vesa目前住在芬兰中部的Jyvaskyla。

 


【目录】

第1章 Rust入门   1

 

 

 

1.1 Rust是什么,以及为何需要关注它 1

 

 

 

1.2 安装Rust工具链 7

 

 

 

1.3 Rust简介 9

 

 

 

1.3.1 基元类型 12

 

 

 

1.3.2 变量声明和不可变性 13

 

 

 

1.3.3 函数 14

 

 

 

1.3.4 闭包 16

 

 

 

1.3.5 字符串 17

 

 

 

1.3.6 条件和判断 17

 

 

 

1.3.7 match表达式 19

 

 

 

1.3.8 循环 20

 

 

 

1.3.9 自定义数据类型 22

 

 

 

1.3.10 类型上的函数和方法 27

 

 

 

1.3.11 module、import和use语句 31

 

 

 

1.3.12 集合 31

 

 

 

1.3.13 迭代器 35

 

 

 

1.4 改进字符计数器 36

 

 

 

1.5 小结 38

 

 

 

第2章使用Cargo管理项目 39

 

 

 

2.1 软件包管理器 40

 

 

 

2.2 模块 40

 

 

 

2.2.1 嵌套模块 40

 

 

 

2.2.2 将文件用作模块 43

 

 

 

2.2.3 将目录用作模块 44

 

 

 

2.3 Cargo和程序库 46

 

 

 

2.3.1 新建一个Cargo项目 47

 

 

 

2.3.2 Cargo与依赖项 48

 

 

 

2.3.3 使用Cargo执行测试 50

 

 

 

2.3.4 使用Cargo运行示例 52

 

 

 

2.3.5 Cargo工作区 53

 

 

 

2.4 Cargo工具扩展 54

 

 

 

2.4.1 子命令和Cargo安装 54

 

 

 

2.4.2 使用clippy格式化代码 56

 

 

 

2.4.3 Cargo.toml清单文件简介 57

 

 

 

2.5 搭建Rust开发环境 60

 

 

 

2.6 使用Cargo构建imgtool程序 63

 

 

 

2.7 小结 66

 

 

 

第3章 测试、文档化和基准评估 67

 

 

 

3.1 测试的目的 67

 

 

 

3.2 组织测试 68

 

 

 

3.3 单元测试 71

 

 

 

3.3.1 第一个单元测试 71

 

 

 

3.3.2 运行测试 71

 

 

 

3.3.3 隔离测试代码 72

 

 

 

3.3.4 故障测试 73

 

 

 

3.3.5 忽略测试 73

 

 

 

3.4 集成测试 74

 

 

 

3.4.1 第一个集成测试 74

 

 

 

3.4.2 共享通用代码 76

 

 

 

3.5 文档 77

 

 

 

3.5.1 编写文档 78

 

 

 

3.5.2 生成和查看文档 78

 

 

 

3.5.3 托管文档 79

 

 

 

3.5.4 文档属性 79

 

 

 

3.5.5 文档化测试 80

 

 

 

3.6 基准 81

 

 

 

3.6.1 内置的微观基准工具 81

 

 

 

3.6.2 稳定版Rust上的基准测试 83

 

 

 

3.7 编写和测试软件包――逻辑门模拟器 86

 

 

 

3.8 CI集成测试与TravisCI 90

 

 

 

3.9 小结 93

 

 

 

第4章 类型、泛型和特征 94

 

 

 

4.1 类型系统及其重要性 94

 

 

 

4.2 泛型 95

 

 

 

4.2.1 创建泛型# 97

 

 

 

4.2.2 泛型实现 99

 

 

 

4.2.3 泛型应用 100

 

 

 

4.3 用特征抽象行为 102

 

 

 

4.3.1 特征 102

 

 

 

4.3.2 特征的多种形式 108

 

 

 

4.4 使用包含泛型的特征――特征区间 110

 

 

 

4.4.1 类型上的特征区间 113

 

 

 

4.4.2 泛型函数和impl代码块上的特征区间 114

 

 

 

4.4.3 使用“+”将特征组合为区间 115

 

 

 

4.4.4 特征区间与impl特征语法 116

 

 

 

4.5 标准库特征简介 118

 

 

 

4.6 使用特征对象实现真正的多态性 125

 

 

 

4.6.1 分发 125

 

 

 

4.6.2 特征对象 126

 

 

 

4.7 小结 128

 

 

 

第5章 内存管理和安全性 129

 

 

 

5.1 程序和内存 130

 

 

 

5.2 程序如何使用内存 131

 

 

 

5.3 内存管理及其分类 132

 

 

 

5.4 内存分配简介 133

 

 

 

5.4.1 堆栈 133

 

 

 

5.4.2 堆 135

 

 

 

5.5 内存管理的缺陷 136

 

 

 

5.6 内存安全性 137

 

 

 

5.7 内存安全三原则 139

 

 

 

5.7.1 所有权 139

 

 

 

5.7.2 通过特征复制类型 144

 

 

 

5.7.3 借用 151

 

 

 

5.7.4 基于借用规则的方法类型 156

 

 

 

5.7.5 生命周期 156

 

 

 

5.8 Rust中的指针类型 164

 

 

 

5.8.1 引用――安全的指针 164

 

 

 

5.8.2 原始指针 165

 

 

 

5.8.3 智能指针 165

 

 

 

5.8.4 引用计数的智能指针 170

 

 

 

5.8.5 内部可变性的应用 179

 

 

 

5.9 小结 180

 

 

 

第6章 异常处理 181

 

 

 

6.1 异常处理简介 181

 

 

 

6.2 可恢复的异常 183

 

 

 

6.2.1 Option 183

 

 

 

6.2.2 Result 187

 

 

 

6.3 Option/Result的组合 191

 

 

 

6.3.1 常见的组合器 191

 

 

 

6.3.2 组合器应用 192

 

 

 

6.3.3 Option和Result类型之间的转换 194

 

 

 

6.4 及早返回和运算符“?” 194

 

 

 

6.5 不可恢复的异常 196

 

 

 

6.6 自定义错误和Error特征 199

 

 

 

6.7 小结 204

 

 

 

第7章 高级概念 205

 

 

 

7.1 类型系统简介 205

 

 

 

7.1.1 代码块和表达式 206

 

 

 

7.1.2 let语句 209

 

 

 

7.1.3 循环作为表达式 214

 

 

 

7.1.4 数字类型中的类型清晰度和符号区分 215

 

 

 

7.1.5 类型推断 217

 

 

 

7.1.6 类型别名 218

 

 

 

7.2 字符串 219

 

 

 

7.2.1 包含所有权的字符串――String 220

 

 

 

7.2.2 借用字符串――&str 222

 

 

 

7.2.3 字符串切片和分块 223

 

 

 

7.2.4 在函数中使用字符串 225

 

 

 

7.2.5 字符串拼接 225

 

 

 

7.2.6 &str和String的应用场景 226

 

 

 

7.3 全局值 227

 

 

 

7.3.1 常量 227

 

 

 

7.3.2 静态值 227

 

 

 

7.3.3 编译期函数――constfn 228

 

 

 

7.3.4 通过lazy_static!宏将静态值动态化 229

 

 

 

7.4 迭代器 230

 

 

 

7.5 高级类型 235

 

 

 

7.5.1 不定长类型 235

 

 

 

7.5.2 函数类型 236

 

 

 

7.5.3 never类型“!”和函数分发 236

 

 

 

7.5.4 联合 236

 

 

 

7.5.5 Cow 238

 

 

 

7.6 高级特征 238

 

 

 

7.6.1 Sized和Sized 238

 

 

 

7.6.2 Borrow和AsRef 238

 

 

 

7.6.3 ToOwned 238

 

 

 

7.6.4 From和Into 239

 

 

 

7.6.5 特征对象和对象安全性 239

 

 

 

7.6.6 通用函数调用语法 240

 

 

 

7.6.7 特征规则 241

 

 

 

7.7 闭包进阶 241

 

 

 

7.7.1 Fn闭包 241

 

 

 

7.7.2 FnMut闭包 242

 

 

 

7.7.3 FnOnce闭包 242

 

 

 

7.8 结构体、枚举和特征中的常量 243

 

 

 

7.9 模块、路径和导入 245

 

 

 

7.9.1 导入 245

 

 

 

7.9.2 再次导出 245

 

 

 

7.9.3 隐私性 246

 

 

 

7.10 高级匹配模式和守护 246

 

 

 

7.10.1 匹配守护 246

 

 

 

7.10.2 高级let构造 247

 

 

 

7.11 强制类型转换 247

 

 

 

7.12 类型与内存 248

 

 

 

7.12.1 内存对齐 248

 

 

 

7.12.2 std::mem模块 249

 

 

 

7.13 使用serde进行序列化和反序列化 251

 

 

 

7.14 小结 252

 

 

 

第8章 并发 253

 

 

 

8.1 程序执行模型 253

 

 

 

8.2 并发 254

 

 

 

8.2.1 并发方法 255

 

 

 

8.2.2 缺陷 257

 

 

 

8.3 Rust中的并发 259

 

 

 

8.3.1 线程基础 259

 

 

 

8.3.2 自定义线程 261

 

 

 

8.3.3 访问线程中的数据 262

 

 

 

8.4 线程的并发模型 264

 

 

 

8.4.1 状态共享模型 264

 

 

 

8.4.2 互斥 267

 

 

 

8.4.3 通过Arc和Mutex实现共享可变性 268

 

 

 

8.4.4 通过消息传递进行通信 270

 

 

 

8.5 Rust中的线程安全 272

 

 

 

8.5.1 什么是线程安全 273

 

 

 

8.5.2 线程安全的特征 273

 

 

 

8.5.3 Send 274

 

 

 

8.5.4 Sync 274

 

 

 

8.6 使用actor模型实现并发 274

 

 

 

8.7 其他程序库 277

 

 

 

8.8 小结 278

 

 

 

第9章 宏与元编程 279

 

 

 

9.1 什么是元编程? 279

 

 

 

9.2 Rust宏的应用场景 282

 

 

 

9.3 Rust中的宏及其类型 282

 

 

 

9.4 使用macro_rules!创建宏 286

 

 

 

9.5 标准库中的内置宏 289

 

 

 

9.6 macro_rules!宏的标记类型 290

 

 

 

9.7 宏中的重复 293

 

 

 

9.8 宏的高级应用――为HashMap的初始化编写DSL 295

 

 

 

9.9 宏用例――编写测试 296

 

 

 

9.10 练习 298

 

 

 

9.11 过程宏 299

 

 

 

9.12 派生宏 300

 

 

 

9.13 调试宏程序 306

 

 

 

9.14 常用的过程宏软件包 306

 

 

 

9.15 小结 307

 

 

 

第10章不安全的Rust和外部函数接口 308

 

 

 

10.1 安全与不安全 308

 

 

 

10.1.1 不安全的函数和代码块 311

 

 

 

10.1.2 不安全的特征和实现 314

 

 

 

10.2 在Rust中调用C代码 316

 

 

 

10.3 通过C语言调用Rust代码 319

 

 

 

10.4 在Rust使用外部C/C++程序库 322

 

 

 

10.5 使用PyO3构造原生Python扩展 325

 

 

 

10.6 在Rust中为Node.js创建原生扩展 328

 

 

 

10.7 小结 332

 

 

 

第11章日志 333

 

 

 

11.1 日志记录及其重要性 333

 

 

 

11.2 日志记录框架的需求 335

 

 

 

11.3 日志记录框架及其特性 335

 

 

 

11.4 日志记录方法 337

 

11.4.1 非结构化日志记录 337

 

11.4.2 结构化日志记录 338

 

 

 

11.5 Rust中的日志记录 338

 

11.5.1 log――为Rust日志记录提供外观 339

 

11.5.2 env_logger 340

 

11.5.3 log4rs 342

 

11.5.4 使用slog进行结构化日志记录 344

 

 

 

11.6 小结 350

 

 

 

第12章Rust与网络编程 351

 

 

 

12.1 网络编程简介 351

 

 

 

12.2 同步网络I/O 354

 

 

 

12.3 异步网络I/O 361

 


 

12.3.1 Rust中的异步抽象 362

 


 

12.3.2 构建异步的Redis服务器 364

 


 

12.4 小结 368

 

 

 

第13章用Rust构建Web应用程序 369

 

13.1 Rust中的Web应用 369

 

13.2 用hyper进行HTTP通信 370

 

13.2.1 hyper服务器端API――构建一个短网址服务 371

 

13.2.2 作为客户端的hyper――构建一个URL短网址客户端 374

 

13.2.3 Web框架 376

 

13.3 actix-web基础知识 377

 

13.4 使用actix-web构建一个书签API 377

 

13.5 小结 387

 

 

 

第14章Rust与数据库 388

 


 

14.1 数据持久性的重要性 388

 

14.2 SQLite 390

 

14.3 PostgreSQL 395

 

14.4 r2d2连接池 399

 

14.5 Postgres和dieselORM 401

 

14.6 小结 408

 

 

 

第15章Rust与WebAssembly 409

 


 

15.1 什么是WebAssmbly 409

 

15.2 WebAssembly的设计目标 412

 

15.3 WebAssembly入门 412

 

15.3.1 在线尝试 413

 

15.3.2 生成WebAssembly的方法 413

 

15.4 Rust和WebAssembly 414

 

15.4.1 Wasm-bindgen 414

 

15.4.2 其他WebAssembly项目 421

 

15.5 小结 422

 

 

 

第16章Rust与桌面应用 423

 


 

16.1 GUI开发简介 423

 

16.2 GTK+框架 424

 

16.3 通过gtk-rs构建一个新闻类桌面应用程序 425 

 

16.4 练习 437

 

16.5 其他新兴的UI框架 437

 

16.6 小结 438

 


 

第 17章 调试 439

 

17.1 调试简介 439

 

17.1.1 调试器基础 440

 

17.1.2 调试的先决条件 441

 

17.1.3 配置GDB 442

 

17.1.4 一个示例程序――buggie 442

 

17.1.5 GDB基础知识 443

 

17.1.6 在Visual Studio Code中集成GDB 448

 

17.2 rr调试器简介 452

 

17.3 小结 454

点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP