展开全部

主编推荐语

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 测试
  • 附录词汇表
展开全部

评分及书评

评分不足
2个评分
  • 用户头像
    给这本书评了
    5.0

    值得一看,作者介绍得很通透

      转发
      评论
      用户头像
      给这本书评了
      3.0

      书不错可以打四颗星,但是这人写的东西读的难受。

        转发
        评论

      出版方

      机械工业出版社有限公司

      机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。