From b852e36859cf80aaf2c864d5a4d461e95dde7b2f Mon Sep 17 00:00:00 2001 From: Allan Downey Date: Sat, 2 Jul 2022 09:29:28 +0800 Subject: [PATCH 1/2] update(index-list): update statements and expressions --- src/index-list.md | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/index-list.md b/src/index-list.md index 6a855205..dde2bbaf 100644 --- a/src/index-list.md +++ b/src/index-list.md @@ -76,22 +76,24 @@ ## B -| 名称 | 关键字 | 简介 | -| ------------------ | ------------ | ------------------------------------------------------------------------------ | -| [变量遮蔽] | shadowing | 允许声明相同的变量名,后者会遮蔽掉前者 | -| [变量覆盖] | 模式匹配 | 无论是是 `match` 还是 `if let`,他们都可以在模式匹配时覆盖掉老的值,绑定新的值 | -| [变量作用域] | 所有权 | 作用域是一个变量在程序中有效的范围 | -| [表达式] | | 进行求值,结尾无 `;`,有返回值 | -| [bool 布尔] | 布尔类型 | `true` `false`,占用 1 字节 | -| [break] | 循环控制 | 直接跳出当前整个循环 | -| [backtrace 栈展开] | 不可恢复错误 | `RUST_BACKTRACE=1 cargo run` | -| | KWB | | +| 名称 | 关键字 | 简介 | +| ------------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------- | +| [变量遮蔽] | shadowing | 允许声明相同的变量名,后者会遮蔽掉前者 | +| [变量覆盖] | 模式匹配 | 无论是是 `match` 还是 `if let`,他们都可以在模式匹配时覆盖掉老的值,绑定新的值 | +| [变量作用域] | 所有权 | 作用域是一个变量在程序中有效的范围 | +| [表达式]与[语句] | | 表达式:进行求值,结尾无 `;`,有返回值,如 `x + 9` 另见 [附录 C]
语句:完成一个操作,结尾有 `;` ,无返回值,如 `let x = 9;` | +| [bool 布尔] | 布尔类型 | `true` `false`,占用 1 字节 | +| [break] | 循环控制 | 直接跳出当前整个循环 | +| [backtrace 栈展开] | 不可恢复错误 | `RUST_BACKTRACE=1 cargo run` | +| | KWB | | [变量遮蔽]: 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#表达式 +[语句]: https://course.rs/basic/base-type/statement-expression.html#语句 +[附录 c]: https://course.rs/appendix/expressions.html [break]: https://course.rs/basic/flow-control.html#break [backtrace 栈展开]: https://course.rs/basic/result-error/panic.html#backtrace-栈展开 @@ -469,12 +471,9 @@ ## Y -| 名称 | 关键字 | 简介 | -| ------ | ------ | ---------------------------------------------------- | -| [语句] | | 完成一个操作,结尾有 `;` ,无返回值,如 `let x = 9;` | -| | KWY | | - -[语句]: https://course.rs/basic/base-type/statement-expression.html#语句 +| 名称 | 关键字 | 简介 | +| ---- | ------ | ---- | +| | KWY | | [back](#head) From 3319c88dc91948a3aa1d5d2ebaf4eacf26fedd8a Mon Sep 17 00:00:00 2001 From: Allan Downey Date: Sat, 2 Jul 2022 10:22:43 +0800 Subject: [PATCH 2/2] update(index-list): update newtype --- src/index-list.md | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/index-list.md b/src/index-list.md index dde2bbaf..1002b0c4 100644 --- a/src/index-list.md +++ b/src/index-list.md @@ -70,7 +70,7 @@ [array 数组]: https://course.rs/basic/compound-type/array.html [array slice]: https://course.rs/basic/compound-type/array.html#数组切片 -[as转换]: https://course.rs/basic/converse.html#as转换 +[as 转换]: https://course.rs/basic/converse.html#as转换 [back](#head) @@ -282,13 +282,15 @@ ## N -| 名称 | 关键字 | 简介 | -| --------- | ------ | ------------------------------------------------------------------------------------------ | -| [newtype] | | 为一个[元组结构体]创建新类型。该元组结构体封装有一个字段,该字段就是希望实现特征的具体类型 | -| | KWN | | +| 名称 | 关键字 | 简介 | +| ------------------- | ------- | ------------------------------------------------------------------------------------------ | +| [newtype for Trait] | newtype | 为一个[元组结构体]创建新类型。该元组结构体封装有一个字段,该字段就是希望实现特征的具体类型 | +| [newtype ] | newtype | 深入 Rust 类型 | +| | KWN | | -[newtype]: https://course.rs/basic/trait/advance-trait.html#在外部类型上实现外部特征newtype +[newtype for trait]: https://course.rs/basic/trait/advance-trait.html#在外部类型上实现外部特征newtype [元组结构体]: https://course.rs/basic/compound-type/struct.html#元组结构体tuple-struct +[newtype ]: http://localhost:8080/advance/into-types/custom-type.html#newtype [back](#head) @@ -387,17 +389,17 @@ ## T -| 名称 | 关键字 | 简介 | -| ------------------------------------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Tuple 元组] | | 由多种类型组合一起,元组的长度是固定的,元组中元素的顺序也是固定的
用模式匹配解构元组:`let (x, y, z) = (20, 19.2, 1)`
用 `.` 来访问元组:`tuple.0` 索引从 0 开始 | -| [Tuple Struct] | 元组结构体 | 结构体必须要有名称,但字段可以没有名称
`struct Color(i32, i32, i32);` | -| [Trait 特征] | 特征 | 一个可以被共享的行为,只要实现了特征,你就能使用该行为 | -| [T: Trait] | 特征约束 | 还可以有多重约束,`T: Trait1 + Trait2`
另见:[where 约束] | -| [Trait Object] | 特征对象 | 特征对象指向实现了 `Trait` 特征的类型的实例,可以在运行时通过特征对象找到具体调用的类型方法 | -| `type` 1. [关联类型] 2. [默认泛型类型参数] | | 1. `type Item;`
`Self` 用来指代当前调用者的具体类型,那么 `Self::em` 就用来指代该类型实现中定义的 `Item` 类型
2. `type Output = Struct;`
指定一个默认值,返回一个关联类型 `Output` | -| [特征定义中的特征约束] | 特征 | 用来说明一个特征需要实现另一个特征 | -| [TryInto 转换] | 类型转换 | 尝试进行一次转换,并返回一个 `Result`,可以对其进行相应的错误处理 | -| | KWT | | +| 名称 | 关键字 | 简介 | +| -------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Tuple 元组] | | 由多种类型组合一起,元组的长度是固定的,元组中元素的顺序也是固定的
用模式匹配解构元组:`let (x, y, z) = (20, 19.2, 1)`
用 `.` 来访问元组:`tuple.0` 索引从 0 开始 | +| [Tuple Struct] | 元组结构体 | 结构体必须要有名称,但字段可以没有名称
`struct Color(i32, i32, i32);` | +| [Trait 特征] | 特征 | 一个可以被共享的行为,只要实现了特征,你就能使用该行为 | +| [T: Trait] | 特征约束 | 还可以有多重约束,`T: Trait1 + Trait2`
另见:[where 约束] | +| [Trait Object] | 特征对象 | 特征对象指向实现了 `Trait` 特征的类型的实例,可以在运行时通过特征对象找到具体调用的类型方法 | +| `type` 1. [关联类型] 2. [默认泛型类型参数] 3. [类型别名] | | 1. `type Item;`
`Self` 用来指代当前调用者的具体类型,那么 `Self::em` 就用来指代该类型实现中定义的 `Item` 类型
2. `type Output = Struct;`
指定一个默认值,返回一个关联类型 `Output` | +| [特征定义中的特征约束] | 特征 | 用来说明一个特征需要实现另一个特征 | +| [TryInto 转换] | 类型转换 | 尝试进行一次转换,并返回一个 `Result`,可以对其进行相应的错误处理 | +| | KWT | | [tuple 元组]: https://course.rs/basic/compound-type/tuple.html#元组 [tuple struct]: https://course.rs/basic/compound-type/struct.html#元组结构体tuple-struct @@ -408,6 +410,7 @@ [默认泛型类型参数]: https://course.rs/basic/trait/advance-trait.html#默认泛型类型参数 [特征定义中的特征约束]: https://course.rs/basic/trait/advance-trait.html#特征定义中的特征约束 [tryinto 转换]: https://course.rs/basic/converse.html#tryinto-转换 +[类型别名]: https://course.rs/advance/into-types/custom-type.html#类型别名type-alias [back](#head)