展开全部

主编推荐语

Rust官方作序力荐,从设计理念出发讲解,降低Rust学习曲线。

内容简介

Rust是一门利用现代化的类型系统,有机地融合了内存管理、所有权语义和混合编程范式的编程语言。它不仅能科学地保证程序的正确性,还能保证内存安全和线程安全。同时,还有能与C/C语言媲美的性能,以及能和动态语言媲美的开发效率。

本书并非对语法内容进行简单罗列讲解,而是从四个维度深入全面且通透地介绍了Rust语言。从设计哲学出发,探索Rust语言的内在一致性;从源码分析入手,探索Rust地道的编程风格;从工程角度着手,探索Rust对健壮性的支持;从底层原理开始,探索Rust内存安全的本质。本书涵盖了Rust 2018的特性,适合有一定编程经验且想要学习Rust的初学者,以及对Rust有一定的了解,想要继续深入学习的进阶者。

目录

  • 版权信息
  • 内容简介
  • 推荐序一
  • 推荐序二
  • 推荐序三
  • 缘起
  • 再一次爱上编程
  • 为什么是Rust
  • 学习Rust带来了什么收获
  • 为什么要写这本书
  • 结语
  • 前言
  • 本书特点
  • 读者群体
  • 如何阅读本书
  • 章节概述
  • 勘误及更多资源
  • 勘误说明:
  • 更多的学习资源:
  • 致谢
  • 读者服务
  • 第1章 新时代的语言
  • 1.1 缘起
  • 1.2 设计哲学
  • 1.2.1 内存安全
  • 1.2.2 零成本抽象
  • 1.2.3 实用性
  • 1.3 现状与未来
  • 1.3.1 语言架构
  • 1.3.2 开源社区
  • 1.3.3 发展前景
  • 1.4 Rust代码如何执行
  • 1.5 小结
  • 第2章 语言精要
  • 2.1 Rust语言的基本构成
  • 2.1.1 语言规范
  • 2.1.2 编译器
  • 2.1.3 核心库
  • 2.1.4 标准库
  • 2.1.5 包管理器
  • 2.2 语句与表达式
  • 2.3 变量与绑定
  • 2.3.1 位置表达式和值表达式
  • 2.3.2 不可变绑定与可变绑定
  • 2.3.3 所有权与引用
  • 2.4 函数与闭包
  • 2.4.1 函数定义
  • 2.4.2 作用域与生命周期
  • 2.4.3 函数指针
  • 2.4.5 CTFE机制
  • 2.4.6 闭包
  • 2.5 流程控制
  • 2.5.1 条件表达式
  • 2.5.2 循环表达式
  • 2.5.3 match表达式与模式匹配
  • 2.5.4 if let和while let表达式
  • 2.6 基本数据类型
  • 2.6.1 布尔类型
  • 2.6.2 基本数字类型
  • 2.6.3 字符类型
  • 2.6.4 数组类型
  • 2.6.5 范围类型
  • 2.6.6 切片类型
  • 2.6.7 str字符串类型
  • 2.6.8 原生指针
  • 2.6.9 never类型
  • 2.7 复合数据类型
  • 2.7.1 元组
  • 2.7.2 结构体
  • 2.7.3 枚举体
  • 2.8 常用集合类型
  • 2.8.1 线性序列:向量
  • 2.8.2 线性序列:双端队列
  • 2.8.3 线性序列:链表
  • 2.8.4 Key-Value映射表:HashMap和BTreeMap
  • 2.8.5 集合:HashSet和BTreeSet
  • 2.8.6 优先队列:BinaryHeap
  • 2.9 智能指针
  • 2.10 泛型和trait
  • 2.10.1 泛型
  • 2.10.2 trait
  • 2.11 错误处理
  • 2.12 表达式优先级
  • 2.13 注释与打印
  • 2.14 小结
  • 第3章 类型系统
  • 3.1 通用概念
  • 3.1.1 类型系统的作用
  • 3.1.2 类型系统的分类
  • 3.1.3 类型系统与多态性
  • 3.2 Rust类型系统概述
  • 3.2.1 类型大小
  • 3.2.2 类型推导
  • 3.3 泛型
  • 3.3.1 泛型函数
  • 3.3.2 泛型返回值自动推导
  • 3.4 深入trait
  • 3.4.1 接口抽象
  • 3.4.2 泛型约束
  • 3.4.3 抽象类型
  • 3.4.4 标签trait
  • 3.5 类型转换
  • 3.5.1 Deref解引用
  • 3.5.2 as操作符
  • 3.5.3 From和Into
  • 3.6 当前trait系统的不足
  • 3.6.1 孤儿规则的局限性
  • 3.6.2 代码复用的效率不高
  • 3.6.3 抽象表达能力有待改进
  • 3.7 小结
  • 第4章 内存管理
  • 4.1 通用概念
  • 4.1.1 栈
  • 4.1.2 堆
  • 4.1.3 内存布局
  • 4.2 Rust中的资源管理
  • 4.2.1 变量和函数
  • 4.2.2 智能指针与RAII
  • 4.2.3 内存泄漏与内存安全
  • 4.2.4 复合类型的内存分配和布局
  • 4.3 小结
  • 第5章 所有权系统
  • 5.1 通用概念
  • 5.2 所有权机制
  • 5.3 绑定、作用域和生命周期
  • 5.3.1 不可变与可变
  • 5.3.2 绑定的时间属性——生命周期
  • 5.4 所有权借用
  • 5.5 生命周期参数
  • 5.5.1 显式生命周期参数
  • 5.5.2 省略生命周期参数
  • 5.5.3 生命周期限定
  • 5.5.4 trait对象的生命周期
  • 5.6 智能指针与所有权
  • 5.6.1 共享所有权 Rc<T>和Weak<T>
  • 5.6.2 内部可变性Cell<T>和RefCell<T>
  • 5.6.3 写时复制Cow<T>
  • 5.7 并发安全与所有权
  • 5.8 非词法作用域生命周期
  • 5.9 小结
  • 第6章 函数、闭包与迭代器
  • 6.1 函数
  • 6.1.1 函数屏蔽
  • 6.1.2 函数参数模式匹配
  • 6.1.3 函数返回值
  • 6.1.4 泛型函数
  • 6.1.5 方法与函数
  • 6.1.6 高阶函数
  • 6.2 闭包
  • 6.2.1 闭包的基本语法
  • 6.2.2 闭包的实现
  • 6.2.3 闭包与所有权
  • 6.2.4 闭包作为函数参数和返回值
  • 6.2.5 高阶生命周期
  • 6.3 迭代器
  • 6.3.1 外部迭代器和内部迭代器
  • 6.3.2 Iterator trait
  • 6.3.3 IntoIterator trait和迭代器
  • 6.3.4 迭代器适配器
  • 6.3.5 消费器
  • 6.3.6 自定义迭代器适配器
  • 6.4 小结
  • 第7章 结构化编程
  • 7.1 面向对象风格编程
  • 7.1.1 结构体
  • 7.1.2 枚举体
  • 7.1.3 析构顺序
  • 7.2 常用设计模式
  • 7.2.1 建造者模式
  • 7.2.2 访问者模式
  • 7.2.3 RAII模式
  • 7.3 小结
  • 第8章 字符串与集合类型
  • 8.1 字符串
  • 8.1.1 字符编码
  • 8.1.2 字符
  • 8.1.3 字符串分类
  • 8.1.4 字符串的两种处理方式
  • 8.1.5 字符串的修改
  • 8.1.6 字符串的查找
  • 8.1.7 与其他类型相互转换
  • 8.1.8 回顾
  • 8.2 集合类型
  • 8.2.1 动态可增长数组
  • 8.2.2 映射集
  • 8.3 理解容量
  • 8.4 小结
  • 第9章 构建健壮的程序
  • 9.1 通用概念
  • 9.2 消除失败
  • 9.3 分层处理错误
  • 9.3.1 可选值Option<T>
  • 9.3.2 错误处理Result<T, E>
  • 9.4 恐慌(Panic)
  • 9.5 第三方库
  • 9.6 小结
  • 第10章 模块化编程
  • 10.1 包管理
  • 10.1.1 使用Cargo创建包
  • 10.1.2 使用第三方包
  • 10.1.3 Cargo.toml文件格式
  • 10.1.4 自定义Cargo
  • 10.2 模块系统
  • 10.3 从零开始实现一个完整功能包
  • 10.3.1 使用Cargo创建新项目
  • 10.3.2 使用structopt解析命令行参数
  • 10.3.3 定义统一的错误类型
  • 10.3.4 读取CSV文件
  • 10.3.5 替换CSV文件中的内容
  • 10.3.6 进一步完善包
  • 10.4 可见性和私有性
  • 10.5 小结
  • 第11章 安全并发
  • 11.1 通用概念
  • 11.1.1 多进程和多线程
  • 11.1.2 事件驱动、异步回调和协程
  • 11.1.3 线程安全
  • 11.2 多线程并发编程
  • 11.2.1 线程管理
  • 11.2.2 Send和Sync
  • 11.2.3 使用锁进行线程同步
  • 11.2.4 屏障和条件变量
  • 11.2.5 原子类型
  • 11.2.6 使用Channel进行线程间通信
  • 11.2.7 内部可变性探究
  • 11.2.8 线程池
  • 11.2.9 使用Rayon执行并行任务
  • 11.2.10 使用Crossbeam
  • 11.3 异步并发
  • 11.3.1 生成器
  • 11.3.2 Future并发模式
  • 11.3.3 async/await
  • 11.4 数据并行
  • 11.4.1 什么是SIMD
  • 11.4.2 在Rust中使用SIMD
  • 11.5 小结
  • 第12章 元编程
  • 12.1 反射
  • 12.1.1 通过is函数判断类型
  • 12.1.2 转换到具体类型
  • 12.1.3 非静态生命周期类型
  • 12.2 宏系统
  • 12.2.1 起源
  • 12.2.2 Rust中宏的种类
  • 12.2.3 编译过程
  • 12.2.4 声明宏
  • 12.2.5 过程宏
  • 12.3 编译器插件
  • 12.4 小结
  • 第13章 超越安全的边界
  • 13.1 Unsafe Rust介绍
  • 13.1.1 Unsafe语法
  • 13.1.2 访问和修改可变静态变量
  • 13.1.3 Union联合体
  • 13.1.4 解引用原生指针
  • 13.2 基于Unsafe进行安全抽象
  • 13.2.1 原生指针
  • 13.2.2 子类型与型变
  • 13.2.3 未绑定生命周期
  • 13.2.4 Drop检查
  • 13.2.5 NonNull<T>指针
  • 13.2.6 Unsafe与恐慌安全
  • 13.2.7 堆内存分配
  • 13.2.8 混合代码内存安全架构三大原则
  • 13.3 和其他语言交互
  • 13.3.1 外部函数接口
  • 13.3.2 与C/C++语言交互
  • 13.3.3 使用Rust提升动态语言性能
  • 13.4 Rust与WebAssembly
  • 13.4.1 WebAssembly要点介绍
  • 13.4.2 使用Rust开发WebAssembly
  • 13.4.3 打造WebAssembly开发生态
  • 13.5 小结
  • 附录A Rust开发环境指南
  • A.1 无须安装环境也可以玩转Rust
  • A.2 在本地安装Rust
  • A.2.1 安装Rust
  • A.2.2 修改国内源
  • A.3 在Docker中使用Rust
  • A.4 Rust IDE或编辑器
  • A.5 开发依赖工具介绍
  • A.5.1 Racer代码补全
  • A.5.2 RLS
  • A.5.3 cargo 插件
  • 附录B Rust如何调试代码
  • B.1 环境配置
  • B.2 调试代码
  • B.3 总结
展开全部

评分及书评

评分不足
1个评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。