diff --git a/src/index-list.md b/src/index-list.md
index f50acd14..d4ae7d59 100644
--- a/src/index-list.md
+++ b/src/index-list.md
@@ -18,18 +18,18 @@
## Sym
-| 名称 | 关键字 | 简介 |
-| ----------------------- | -------------- | ------------------------------------------------ |
-| [?] | 错误传播 | 用于简化错误传播 |
-| [()] | 单元类型 | 单元类型,无返回值 |
-| `!` : [1 函数] [2 类型] | 永不返回 | 永不返回 |
-| [&] | 引用 | 常规引用是一个指针类型,指向了对象存储的内存地址 |
-| [\*] | 解引用 | 解出引用所指向的值 |
-| [@] | 变量绑定 | 为一个字段绑定另外一个变量 |
-| `_` | | 忽略该值或者类型 |
-| ['a: 'b] | 生命周期约束 | 用来说明两个生命周期的长短 |
-| [{:?}] {:#?} | 打印结构体信息 | 使用 `#[derive(Debug)]` 派生实现 `Debug` 特征 |
-| A | | AIntroduction |
+| 名称 | 关键字 | 简介 |
+| ----------------------- | -------------- | ------------------------------------------------------------------------------------ |
+| [?] | 错误传播 | 用于简化错误传播 |
+| [()] | 单元类型 | 单元类型,无返回值 |
+| `!` : [1 函数] [2 类型] | 永不返回 | 永不返回 |
+| [&] | 引用 | 常规引用是一个指针类型,指向了对象存储的内存地址 |
+| [\*] | 解引用 | 解出引用所指向的值 |
+| [@] | 变量绑定 | 为一个字段绑定另外一个变量 |
+| `_` : [2 模式匹配] | 忽略 | 1. 忽略该值或者类型,否则编译器会给你一个 `变量未使用的` 的警告
2. 模式匹配通配符 |
+| ['a: 'b] | 生命周期约束 | 用来说明两个生命周期的长短 |
+| [{:?}] {:#?} | 打印结构体信息 | 使用 `#[derive(Debug)]` 派生实现 `Debug` 特征 |
+| A | | AIntroduction |
[?]: https://course.rs/basic/result-error/result.html#传播界的大明星-
[()]: https://course.rs/basic/base-type/function.html#无返回值
@@ -40,6 +40,7 @@
[@]: https://course.rs/basic/match-pattern/all-patterns.html#绑定
['a: 'b]: https://course.rs/advance/lifetime/advance.html#生命周期约束-hrtb
[{:?}]: https://course.rs/basic/compound-type/struct.html?search=#使用-derivedebug-来打印结构体的信息
+[2 模式匹配]: https://course.rs/basic/match-pattern/match-if-let.html#_-通配符
[back](#head)
@@ -58,16 +59,18 @@
## B
-| 名称 | 关键字 | 简介 |
-| ------------ | --------- | -------------------------------------- |
-| [变量遮蔽] | shadowing | 允许声明相同的变量名,后者会遮蔽掉前者 |
-| [变量作用域] | 所有权 | 作用域是一个变量在程序中有效的范围 |
-| [表达式] | | 进行求值,结尾无 `;`,有返回值 |
-| [bool 布尔] | 布尔类型 | `true` `false`,占用 1 字节 |
-| [break] | 循环控制 | 直接跳出当前整个循环 |
-| B | KWB | BIntroduction |
+| 名称 | 关键字 | 简介 |
+| ------------ | --------- | ------------------------------------------------------------------------------ |
+| [变量遮蔽] | shadowing | 允许声明相同的变量名,后者会遮蔽掉前者 |
+| [变量覆盖] | 模式匹配 | 无论是是 `match` 还是 `if let`,他们都可以在模式匹配时覆盖掉老的值,绑定新的值 |
+| [变量作用域] | 所有权 | 作用域是一个变量在程序中有效的范围 |
+| [表达式] | | 进行求值,结尾无 `;`,有返回值 |
+| [bool 布尔] | 布尔类型 | `true` `false`,占用 1 字节 |
+| [break] | 循环控制 | 直接跳出当前整个循环 |
+| B | KWB | BIntroduction |
[变量遮蔽]: https://course.rs/basic/variable.html#变量遮蔽shadowing
+[变量覆盖]: https://course.rs/basic/match-pattern/match-if-let.html#变量覆盖
[变量作用域]: https://course.rs/basic/ownership/ownership.html#变量作用域
[bool 布尔]: https://course.rs/basic/base-type/char-bool.html#布尔bool
[表达式]: https://course.rs/basic/base-type/statement-expression.html#表达式
@@ -147,14 +150,16 @@
## I
-| 名称 | 关键字 | 简介 |
-| --------- | -------- | -------------------------- |
-| [if else] | 流程控制 | 根据条件执行不同的代码分支 |
-| [else if] | 流程控制 | 处理多重条件 |
-| I | KWI | IIntroduction |
+| 名称 | 关键字 | 简介 |
+| ------------- | -------- | --------------------------------------------------------------------- |
+| [if else] | 流程控制 | 根据条件执行不同的代码分支 |
+| [else if] | 流程控制 | 处理多重条件 |
+| [if let 匹配] | 模式匹配 | 当你只要匹配一个条件,且忽略其他条件时就用 `if let`,否则都用 `match` |
+| I | KWI | IIntroduction |
[if else]: https://course.rs/basic/flow-control.html#使用-if-来做分支控制
[else if]: https://course.rs/basic/flow-control.html#使用-else-if-来处理多重条件
+[if let 匹配]: https://course.rs/basic/match-pattern/match-if-let.html#if-let-匹配
[back](#head)
@@ -192,11 +197,17 @@
## M
-| 名称 | 关键字 | 简介 |
-| ----------- | ---------- | ----------------------------------------------------- |
-| [move 移动] | 转移所有权 | `let s2 = s1;`
`s1` 所有权转移给了 `s2`,`s1` 失效 |
-| M | KWM | MIntroduction |
-
+| 名称 | 关键字 | 简介 |
+| ------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| [模式绑定] | 模式匹配 | 从模式中取出绑定的值 |
+| [match 匹配] | 模式匹配 | `match` 的匹配必须要穷举出所有可能,因此这里用 `_ ` 来代表未列出的所有可能性
`match` 的每一个分支都必须是一个表达式,且所有分支的表达式最终返回值的类型必须相同 |
+| [matches! 宏] | 模式匹配 | 将一个表达式跟模式进行匹配,然后返回匹配的结果 `true` 或 `false` |
+| [move 移动] | 转移所有权 | `let s2 = s1;`
`s1` 所有权转移给了 `s2`,`s1` 失效 |
+| M | KWM | MIntroduction |
+
+[模式绑定]: https://course.rs/basic/match-pattern/match-if-let.html#模式绑定
+[match 匹配]: https://course.rs/basic/match-pattern/match-if-let.html#match-匹配
+[matches! 宏]: https://course.rs/basic/match-pattern/match-if-let.html#matches宏
[move 移动]: https://course.rs/basic/ownership/ownership.html#转移所有权
[back](#head)