简介
1.
Hello World
1.1.
注释
1.2.
格式化输出
1.2.1.
调试(debug)
1.2.2.
显示(display)
1.2.3.
测试实例:List
1.2.4.
格式化
2.
原生类型
2.1.
字面量和运算符
2.2.
元组
2.3.
数组和切片
3.
自定义类型
3.1.
结构体
3.2.
枚举
3.2.1.
使用 use
3.2.2.
C 风格用法
3.2.3.
测试实例:链表
3.3.
常量
4.
变量绑定
4.1.
可变变量
4.2.
作用域和遮蔽
4.3.
变量先声明
4.4.
冻结
5.
类型系统
5.1.
类型转换
5.2.
字面量
5.3.
类型推断
5.4.
别名
6.
类型转换
6.1.
From 和 Into
6.2.
TryFrom 和 TryInto
6.3.
ToString 和 FromStr
7.
表达式
8.
流程控制
8.1.
if/else
8.2.
loop 循环
8.2.1.
嵌套循环和标签
8.2.2.
从 loop 循环返回
8.3.
while 循环
8.4.
for 循环和区间
8.5.
match 匹配
8.5.1.
解构
8.5.1.1.
元组
8.5.1.2.
枚举
8.5.1.3.
指针和引用
8.5.1.4.
结构体
8.5.2.
卫语句
8.5.3.
绑定
8.6.
if let
8.7.
while let
9.
函数
9.1.
方法
9.2.
闭包
9.2.1.
捕获
9.2.2.
作为输入参数
9.2.3.
类型匿名
9.2.4.
输入函数
9.2.5.
作为输出参数
9.2.6.
std 中的例子
9.2.6.1.
Iterator::any
9.2.6.2.
Iterator::find
9.3.
高阶函数
9.4.
发散函数
10.
模块
10.1.
可见性
10.2.
结构体的可见性
10.3.
use 声明
10.4.
super 和 self
10.5.
文件分层
11.
crate
11.1.
库
11.2.
使用库
12.
cargo
12.1.
依赖
12.2.
约定规范
12.3.
测试
12.4.
构建脚本
13.
属性
13.1.
死代码 dead_code
13.2.
crate
13.3.
cfg
13.3.1.
自定义条件
14.
泛型
14.1.
函数
14.2.
实现
14.3.
trait
14.4.
约束
14.4.1.
测试实例:空约束
14.5.
多重约束
14.6.
where 子句
14.7.
newtype 惯用法
14.8.
关联项
14.8.1.
存在问题
14.8.2.
关联类型
14.9.
虚类型参数
14.9.1.
测试实例:单位检查
15.
作用域规则
15.1.
RAII
15.2.
所有权和移动
15.2.1.
可变性
15.2.2.
部分移动
15.3.
借用
15.3.1.
可变性
15.3.2.
别名使用
15.3.3.
ref 模式
15.4.
生命周期
15.4.1.
显式标注
15.4.2.
函数
15.4.3.
方法
15.4.4.
结构体
15.4.5.
trait
15.4.6.
约束
15.4.7.
强制转换
15.4.8.
static
15.4.9.
省略
16.
特质 trait
16.1.
派生
16.2.
使用 dyn 返回 trait
16.3.
运算符重载
16.4.
Drop
16.5.
Iterator
16.6.
impl Trait
16.7.
Clone
16.8.
父 trait
16.9.
消除重叠 trait
17.
使用 macro_rules! 来创建宏
17.1.
语法
17.1.1.
指示符
17.1.2.
重载
17.1.3.
重复
17.2.
DRY (不写重复代码)
17.3.
DSL (领域专用语言)
17.4.
可变参数接口
18.
错误处理
18.1.
panic
18.2.
Option 和 unwrap
18.2.1.
使用 ? 解开 Option
18.2.2.
组合算子:map
18.2.3.
组合算子:and_then
18.3.
结果 Result
18.3.1.
Result 的 map
18.3.2.
给 Result 取别名
18.3.3.
提前返回
18.3.4.
引入 ?
18.4.
处理多种错误类型
18.4.1.
从 Option 中取出 Result
18.4.2.
定义一种错误类型
18.4.3.
把错误 “装箱”
18.4.4.
? 的其他用法
18.4.5.
包裹错误
18.5.
遍历 Result
19.
标准库类型
19.1.
箱子、栈和堆
19.2.
动态数组 vector
19.3.
字符串 String
19.4.
选项 Option
19.5.
结果 Result
19.5.1.
? 用法
19.6.
panic!
19.7.
散列表 HashMap
19.7.1.
更改或自定义关键字类型
19.7.2.
散列集 HashSet
19.8.
引用计数 Rc
19.9.
共享引用计数 Arc
20.
标准库更多介绍
20.1.
线程
20.1.1.
测试实例:map-reduce
20.2.
通道
20.3.
路径
20.4.
文件输入输出(I/O)
20.4.1.
打开文件 open
20.4.2.
创建文件 create
20.4.3.
读取行 read lines
20.5.
子进程
20.5.1.
管道
20.5.2.
等待
20.6.
文件系统操作
20.7.
程序参数
20.7.1.
参数解析
20.8.
外部语言函数接口
21.
测试
21.1.
单元测试
21.2.
文档测试
21.3.
集成测试
21.4.
开发依赖
22.
不安全操作
23.
兼容性
23.1.
原始标志符
24.
补充
24.1.
文档
24.2.
Playpen
Light (default)
Rust
Coal
Navy
Ayu
通过例子学 Rust 中文版
类型系统
Rust 提供了多种机制,用于改变或定义原生类型和用户定义类型。接下来会讲到:
原生类型的
类型转换
(cast)。
指定
字面量
的类型。
使用
类型推断
(type inference)。
给类型
取别名
(alias)。