封面
版权信息
作者简介
内容简介
前言 PREFACE
第1章 Rust编程语言概述
1.1 编程语言
1.2 Rust语言
1.2.1 为什么选择Rust
1.2.2 在哪里能使用Rust
1.3 Hello Rust!
第2章 开发环境
2.1 工具链
2.1.1 Windows系统上的安装
2.1.2 在GNU/Linux上安装
2.1.3 在其他操作系统上安装
2.1.4 卸载
2.2 集成开发环境
2.3 CLion安装与部署
2.3.1 下载和安装CLion
2.3.2 配置CLion
第3章 开发命令行程序
3.1 输出到命令行
3.2 详细输出
3.3 从命令行输入
3.4 从命令参数中获取
第4章 基础语法
4.1 变量
4.2 重影
4.3 常量
4.4 静态变量
第5章 Rust数据类型
5.1 整数型
5.2 浮点数型
5.3 数学运算
5.3.1 基础运算
5.3.2 数学函数
5.4 布尔型
5.5 逻辑运算
5.6 字符型
5.7 字符串
5.8 元组
5.9 数组
第6章 注释
6.1 常规注释
6.2 说明文档注释
6.3 生成工程文档
第7章 函数
7.1 函数的声明
7.2 函数语句与函数表达式
7.2.1 函数语句与表达式
7.2.2 函数返回值
7.2.3 函数表达式
7.3 函数对象
7.4 闭包(Lambda表达式)
第8章 条件语句
8.1 if-else语句
8.2 三元运算符
8.3 match语句——Rust中的switch
第9章 循环结构
9.1 while循环
9.2 for循环
9.3 loop循环
第10章 所有权
10.1 内存管理
10.1.1 内存的概念
10.1.2 主流的内存管理机制
10.2 所有权机制
10.2.1 变量范围
10.2.2 生命周期
10.2.3 转移
10.2.4 复制
10.2.5 引用和借用
10.2.6 垂悬引用
10.3 与函数相关的所有权
10.3.1 参数所有权
10.3.2 返回值所有权
10.4 引用类型
10.4.1 引用的用途
10.4.2 可变引用
10.4.3 解引用运算符
第11章 切片类型
11.1 字符串切片
11.2 数组切片
第12章 复合类型
12.1 结构体
12.1.1 结构体的定义
12.1.2 结构体的实例化
12.1.3 结构体所有权
12.1.4 结构体方法
12.1.5 元组结构体
12.1.6 单元结构体
12.2 枚举类
12.2.1 枚举类的定义
12.2.2 枚举类的match语法
12.2.3 if-let语法
12.2.4 枚举类的方法
第13章 泛型
13.1 泛型函数
13.2 复合类型的泛型
13.2.1 泛型结构体
13.2.2 泛型枚举类
13.3 impl泛型
13.3.1 对泛型类实现方法
13.3.2 对具体类实现方法
13.3.3 泛型方法
第14章 错误处理与空值
14.1 错误与错误处理
14.2 不可恢复错误
14.3 可恢复错误
14.3.1 Result枚举类
14.3.2 可恢复错误的传递
14.3.3 Error类型和它的kind方法
14.4 “空引用”
14.4.1 Null的概念
14.4.2 Option枚举类
第15章 工程组织和访问权
15.1 工程组织概念
15.1.1 箱
15.1.2 包
15.1.3 模块
15.2 访问权
15.2.1 模块访问权
15.2.2 结构体访问权
15.2.3 枚举类访问权
15.3 use关键字
15.4 引用标准库
15.5 多源文件工程
15.5.1 新建源文件
15.5.2 运行多源文件程序
15.6 Cargo
15.6.1 Cargo是什么
15.6.2 Cargo功能
15.6.3 Cargo导入外部包
第16章 特性
16.1 定义特性
16.2 实现特性
16.3 默认特性
16.4 特性作参数
16.4.1 常规特性参数
16.4.2 泛型特性参数
16.4.3 特性叠加
16.5 特性作返回值
16.6 有条件的实现方法
第17章 文件与I/O
17.1 关于文件的概念
17.1.1 文件
17.1.2 流
17.2 打开文件
17.2.1 打开文件的种类
17.2.2 只读模式
17.3 创建新文件模式
17.3.1 创建新文件
17.3.2 覆盖文件
17.4 追加模式
17.5 自定义模式打开文件
17.5.1 OpenOptions对象
17.5.2 以读写模式打开文件
17.6 写入和读取二进制信息
17.7 文件系统
17.7.1 列出目录
17.7.2 创建目录
17.7.3 删除文件或目录
第18章 数据结构与集合
18.1 线性数据结构
18.1.1 向量
18.1.2 双端向量
18.1.3 链表
18.2 字符串
18.2.1 将数据转换为字符串
18.2.2 拼接字符串
18.2.3 字符串截取
18.2.4 UTF-8编码
18.3 映射表
18.3.1 散列映射表
18.3.2 B树映射表
18.4 集
18.4.1 散列集
18.4.2 B树集
18.5 堆
18.5.1 二叉堆
18.5.2 从向量创建堆
第19章 面向对象编程思想的实现
19.1 类
19.2 对象
19.3 封装
19.4 继承
19.5 多态
第20章 堆内存区
20.1 内存的分配方式
20.2 Box类型
20.3 Box解引用特性
20.4 dyn关键字
20.5 Box的所有权
第21章 高级引用
21.1 Box引用
21.2 Rc——引用计数
21.3 Mutex——互斥锁
第22章 运算符方法
22.1 Rust运算符方法
22.2 实现运算符方法
22.2.1 实现复数加法
22.2.2 引用类型运算符方法实现
22.3 支持实现运算符方法的运算符
22.4 特殊的运算符
22.4.1 Deref和DerefMut特性
22.4.2 Drop特性
22.4.3 Fn、FnMut和FnOnce特性
第23章 无畏并发
23.1 并发和问题
23.1.1 数据共用
23.1.2 数据回收
23.1.3 死锁
23.1.4 线程通信
23.2 多线程
23.3 线程通信
23.4 Arc线程安全引用计数
23.5 应对互斥锁死锁
23.5.1 用一个互斥锁保护
23.5.2 使用“标志互斥锁”
第24章 属性
24.1 属性的使用
24.2 条件编译属性
24.2.1 cfg属性
24.2.2 test条件编译
24.2.3 “cfg_attr”属性
24.3 derive派生属性
24.4 诊断属性
24.4.1 lint检查属性
24.4.2 deprecated属性
24.4.3 must_use属性
24.5 模块路径属性
24.6 其他属性
第25章 宏
25.1 宏的使用
25.2 宏的定义
25.3 过程宏
25.3.1 类函数过程宏
25.3.2 派生过程宏
25.3.3 属性宏
第26章 “不安全”语法
26.1 “不安全”域
26.2 原始指针
26.3 “不安全”的函数和方法
26.4 访问静态变量
26.5 “不安全”特性
26.6 共用体
第27章 Web服务器程序
27.1 TCP简介
27.1.1 建立TCP连接
27.1.2 搭建TCP服务器
27.2 UDP简介
27.3 简易的HTTP服务器
更新时间:2023-08-10 16:20:39