科技
类型
8.0
豆瓣评分
可以朗读
语音朗读
337千字
字数
2018-08-01
发行日期
展开全部
主编推荐语
Rust开源项目贡献者范长春,详解Rust的设计精华。
内容简介
本书详细描述了Rust语言的基本语法,穿插讲解一部分高级使用技巧,并以更容易理解的方式解释其背后的设计思想。
全书总共分五个部分。第一部分介绍Rust基本语法,因为对任何程序设计语言来说,语法都是基础,学习这部分是理解其他部分的前提。第二部分介绍属于Rust独一无二的内存管理方式。它设计了一组全新的机制,既保证了安全性,又保持了强大的内存布局控制力,而且没有额外性能损失。这部分是本书的重点和核心所在,也是Rust语言的思想内核精髓之处。第三部分介绍Rust的抽象表达能力。它支持多种编程范式,以及较为强大的抽象表达能力。第四部分介绍并发模型。在目前这个阶段,对并行编程的支持是新一代编程语言不可绕过的重要话题。Rust也吸收了业界最新的发展成果,对并发有良好支持。第五部分介绍一些实用设施。
Rust语言有许多创新,但它绝不是高高在上孤芳自赏的类型,设计者在设计过程中充分考虑了语言的工程实用性。众多在其他语言中被证明过的优秀实践被吸收了进来,有利于提升实际工作效率。通过此书,读者能够深入透彻地理解Rust的高阶特性,比如代数类型系统、生命周期、借用检查、内部可变性、线程安全、泛型、闭包、迭代器、生成器等。
目录
- 版权信息
- 前言
- 第一部分基础知识
- 第1章 与君初相见
- 1.1 版本和发布策略
- 1.2 安装开发环境
- 1.3 Hello World
- 1.4 Prelude
- 1.5 Format格式详细说明
- 第2章 变量和类型
- 2.1 变量声明
- 2.2 基本数据类型
- 2.3 复合数据类型
- 第3章 语句和表达式
- 3.1 语句
- 3.2 表达式
- 3.3 if-else
- 第4章 函数
- 4.1 简介
- 4.2 发散函数
- 4.3 main函数
- 4.4 const fn
- 4.5 函数递归调用
- 第5章 trait
- 5.1 成员方法
- 5.2 静态方法
- 5.3 扩展方法
- 5.4 完整函数调用语法
- 5.5 trait约束和继承
- 5.6 Derive
- 5.7 trait别名
- 5.8 标准库中常见的trait简介
- 5.9 总结
- 第6章 数组和字符串
- 6.1 数组
- 6.2 字符串
- 第7章 模式解构
- 7.1 简介
- 7.2 match
- 7.3 if-let和while-let
- 7.4 函数和闭包参数做模式解构
- 7.5 总结
- 第8章 深入类型系统
- 8.1 代数类型系统
- 8.2 Never Type
- 8.3 再谈Option类型
- 第9章 宏
- 9.1 简介macro
- 9.2 示范型宏
- 9.3 宏1.1
- 第二部分内存安全
- 第10章 内存管理基础
- 10.1 堆和栈
- 10.2 段错误
- 10.3 内存安全
- 第11章 所有权和移动语义
- 11.1 什么是所有权
- 11.2 移动语义
- 11.3 复制语义
- 11.4 Box类型
- 11.5 Clone VS.Copy
- 11.6 析构函数
- 第12章 借用和生命周期
- 12.1 生命周期
- 12.2 借用
- 12.3 借用规则
- 12.4 生命周期标记
- 12.5 省略生命周期标记
- 第13章 借用检查
- 13.1 编译错误示例
- 13.2 内存不安全示例:修改枚举
- 13.3 内存不安全示例:迭代器失效
- 13.4 内存不安全示例:悬空指针
- 13.5 小结
- 第14章 NLL(Non-Lexical-Lifetime)
- 14.1 NLL希望解决的问题
- 14.2 NLL的原理
- 14.3 小结
- 第15章 内部可变性
- 15.1 Cell
- 15.2 RefCell
- 15.3 UnsafeCell
- 第16章 解引用
- 16.1 自定义解引用
- 16.2 自动解引用
- 16.3 自动解引用的用处
- 16.4 有时候需要手动处理
- 16.5 智能指针
- 16.6 小结
- 第17章 泄漏
- 17.1 内存泄漏
- 17.2 内存泄漏属于内存安全
- 17.3 析构函数泄漏
- 第18章 Panic
- 18.1 什么是panic
- 18.2 Panic实现机制
- 18.3 Panic Safety
- 18.4 小结
- 第19章 Unsafe
- 19.1 unsafe关键字
- 19.2 裸指针
- 19.3 内置函数
- 19.4 分割借用
- 19.5 协变
- 19.6 未定义行为
- 19.7 小结
- 第20章 Vec源码分析
- 20.1 内存申请
- 20.2 内存扩容
- 20.3 内存释放
- 20.4 不安全的边界
- 20.5 自定义解引用
- 20.6 迭代器
- 20.7 panic safety
- 第三部分高级抽象
- 第21章 泛型
- 21.1 数据结构中的泛型
- 21.2 函数中的泛型
- 21.3 impl块中的泛型
- 21.4 泛型参数约束
- 21.5 关联类型
- 21.6 何时使用关联类型
- 21.7 泛型特化
- 第22章 闭包
- 22.1 变量捕获
- 22.2 move关键字
- 22.3 Fn/FnMut/FnOnce
- 22.4 闭包与泛型
- 22.5 闭包与生命周期
- 第23章 动态分派和静态分派
- 23.1 trait object
- 23.2 object safe
- 23.3 impl trait
- 第24章 容器与迭代器
- 24.1 容器
- 24.2 迭代器
- 第25章 生成器
- 25.1 简介
- 25.2 对比迭代器
- 25.3 对比立即求值
- 25.4 生成器的原理
- 25.5 协程简介
- 第26章 标准库简介
- 26.1 类型转换
- 26.2 运算符重载
- 26.3 I/O
- 26.4 Any
- 第四部分线程安全
- 第27章 线程安全
- 27.1 什么是线程
- 27.2 启动线程
- 27.3 免数据竞争
- 27.4 Send & Sync
- 第28章 详解Send和Sync
- 28.1 什么是Send
- 28.2 什么是Sync
- 28.3 自动推理
- 28.4 小结
- 第29章 状态共享
- 29.1 Arc
- 29.2 Mutex
- 29.3 RwLock
- 29.4 Atomic
- 29.5 死锁
- 29.6 Barrier
- 29.7 Condvar
- 29.8 全局变量
- 29.9 线程局部存储
- 29.10 总结
- 第30章 管道
- 30.1 异步管道
- 30.2 同步管道
- 第31章 第三方并行开发库
- 31.1 threadpool
- 31.2 scoped-threadpool
- 31.3 parking_lot
- 31.4 crossbeam
- 31.5 rayon
- 第五部分实用设施
- 第32章 项目和模块
- 32.1 cargo
- 32.2 项目依赖
- 32.3 模块管理
- 第33章 错误处理
- 33.1 基本错误处理
- 33.2 组合错误类型
- 33.3 问号运算符
- 33.4 main函数中使用问号运算符
- 33.5 新的Failure库
- 第34章 FFI
- 34.1 什么是FFI
- 34.2 从C调用Rust库
- 34.3 从Rust调用C库
- 34.4 更复杂的数据类型
- 第35章 文档和测试
- 35.1 文档
- 35.2 测试
- 附录词汇表
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。