From 5e4695c001e13ced659117ba563f374e8e87ab6f Mon Sep 17 00:00:00 2001 From: Allan Downey Date: Sun, 1 May 2022 14:17:52 +0800 Subject: [PATCH] update(index-list): update style, add Generics, add Trait --- src/index-list.md | 258 ++++++++++++++++++++++++++-------------------- 1 file changed, 148 insertions(+), 110 deletions(-) diff --git a/src/index-list.md b/src/index-list.md index 83dcb97d..a24d451e 100644 --- a/src/index-list.md +++ b/src/index-list.md @@ -10,41 +10,44 @@ -| NN | NN | NN | NN | NN | NN | NN | NN | NN | NN | NN | NN | -| :-------------: | :-----: | :-----: | :-----: | :-----: | :-----: | :-----: | :-----: | :-----: | :-----: | :-----: | :-----: | -| [Sym](#sym) | [A](#a) | [B](#b) | [C](#c) | [D](#d) | [E](#e) | [F](#f) | [G](#g) | [H](#h) | [I](#i) | [J](#j) | [K](#k) | -| [Cargo](#cargo) | [L](#l) | [M](#m) | [N](#n) | [O](#o) | [P](#p) | [Q](#q) | [R](#r) | [S](#s) | [T](#t) | [U](#u) | [V](#v) | -| [W](#w) | [X](#x) | [Y](#y) | [Z](#z) | +| NN | NN | NN | NN | NN | NN | NN | NN | NN | NN | NN | +| :-------------: | :------: | :-----: | :-----: | :-----: | :-----: | :-----: | :-----: | :-----: | :-----: | :-----: | +| [#](#sym) | [A](#a) | [B](#b) | [C](#c) | [D](#d) | [E](#e) | [F](#f) | [G](#g) | [H](#h) | [I](#i) | [J](#j) | +| [K](#k) | [L](#l) | [M](#m) | [N](#n) | [O](#o) | [P](#p) | [Q](#q) | [R](#r) | [S](#s) | [T](#t) | [U](#u) | +| [V](#v) | [W](#w) | [X](#x) | [Y](#y) | [Z](#z) | +| [Cargo](#cargo) | [Naming] | + +[naming]: https://course.rs/practice/naming.html [bottom](#bottom) ## Sym -| 名称 | 关键字 | 简介 | -| ------------------------------- | -------------- | ------------------------------------------------------------------------------------ | -| [?] | 错误传播 | 用于简化错误传播 | -| [()] | 单元类型 | 单元类型,无返回值 | -| `!` : [1 函数] [2 类型] | 永不返回 | 永不返回 | -| [&] | 引用 | 常规引用是一个指针类型,指向了对象存储的内存地址 | -| [\*] | 解引用 | 解出引用所指向的值 | -| [@] | 变量绑定 | 为一个字段绑定另外一个变量 | -| `_` : [1 忽略变量] [2 模式匹配] | 忽略 | 1. 忽略该值或者类型,否则编译器会给你一个 `变量未使用的` 的警告
2. 模式匹配通配符 | -| ['a: 'b] | 生命周期约束 | 用来说明两个生命周期的长短 | -| [{:?}] {:#?} | 打印结构体信息 | 使用 `#[derive(Debug)]` 派生实现 `Debug` 特征 | -| [::] | 关联函数 | 定义在 `impl` 中且没有 `self` 的函数 | -| A | | AIntroduction | +| 名称 | 关键字 | 简介 | +| --------------------------------- | -------------- | ------------------------------------------------------------------------------------ | +| [?] | 错误传播 | 用于简化错误传播 | +| [()] | 单元类型 | 单元类型,无返回值 | +| `!` : 1. [函数] 2. [类型] | 永不返回 | 永不返回 | +| [&] | 引用 | 常规引用是一个指针类型,指向了对象存储的内存地址 | +| [\*] | 解引用 | 解出引用所指向的值 | +| [@] | 变量绑定 | 为一个字段绑定另外一个变量 | +| `_` : 1. [忽略变量] 2. [模式匹配] | 忽略 | 1. 忽略该值或者类型,否则编译器会给你一个 `变量未使用的` 的警告
2. 模式匹配通配符 | +| ['a: 'b] | 生命周期约束 | 用来说明两个生命周期的长短 | +| [{:?}] {:#?} | 打印结构体信息 | 使用 `#[derive(Debug)]` 派生实现 `Debug` 特征 | +| [::] | 关联函数 | 定义在 `impl` 中且没有 `self` 的函数 | +| | | [?]: https://course.rs/basic/result-error/result.html#传播界的大明星- [()]: https://course.rs/basic/base-type/function.html#无返回值 -[1 函数]: https://course.rs/basic/base-type/function.html#永不返回的发散函数- -[2 类型]: https://course.rs/advance/into-types/custom-type.html#永不返回类型 +[函数]: https://course.rs/basic/base-type/function.html#永不返回的发散函数- +[类型]: https://course.rs/advance/into-types/custom-type.html#永不返回类型 [&]: https://course.rs/basic/ownership/borrowing.html#引用与解引用 [\*]: https://course.rs/basic/ownership/borrowing.html#引用与解引用 [@]: 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-来打印结构体的信息 -[1 忽略变量]: https://course.rs/basic/variable.html#使用下划线开头忽略未使用的变量 -[2 模式匹配]: https://course.rs/basic/match-pattern/match-if-let.html#_-通配符 +[{:?}]: https://course.rs/basic/compound-type/struct.html#使用-derivedebug-来打印结构体的信息 +[忽略变量]: https://course.rs/basic/variable.html#使用下划线开头忽略未使用的变量 +[模式匹配]: https://course.rs/basic/match-pattern/match-if-let.html#_-通配符 [::]: https://course.rs/basic/method.html#关联函数 [back](#head) @@ -55,7 +58,7 @@ | ------------- | -------- | ---------------------------------------------------------------------------------------------------------------------- | | [array 数组] | 数组 | 长度固定
元素必须有相同的类型
依次线性排列
可以通过索引访问其中的元素
`let a: [i32; 5] = [1, 2, 3, 4, 5];` | | [array slice] | 数组切片 | `let slice: &[i32] = &a[1..3];` | -| A | KWA | AIntroduction | +| | KWA | | [array 数组]: https://course.rs/basic/compound-type/array.html [array slice]: https://course.rs/basic/compound-type/array.html#数组切片 @@ -72,7 +75,7 @@ | [表达式] | | 进行求值,结尾无 `;`,有返回值 | | [bool 布尔] | 布尔类型 | `true` `false`,占用 1 字节 | | [break] | 循环控制 | 直接跳出当前整个循环 | -| B | KWB | BIntroduction | +| | KWB | | [变量遮蔽]: https://course.rs/basic/variable.html#变量遮蔽shadowing [变量覆盖]: https://course.rs/basic/match-pattern/match-if-let.html#变量覆盖 @@ -85,28 +88,36 @@ ## C -| 名称 | 关键字 | 简介 | -| ------------ | -------- | ----------------------------------------------------------------------------------- | -| [char 字符] | 字符类型 | 使用 `''` 表示,所有的 Unicode 值 | -| [const 常量] | constant | `const MAX_POINTS: u32 = 100_000;` | -| [Copy 拷贝] | 浅拷贝 | 任何基本类型的组合可以 `Copy`,不需要分配内存或某种形式资源的类型是可以 `Copy` 的。 | -| [continue] | 循环控制 | 跳过当前当次的循环,开始下次的循环 | -| [Clone 克隆] | 深拷贝 | 需要复制堆上的数据时,可以使用 `.clone()` 方法 | -| C | KWC | CIntroduction | +| 名称 | 关键字 | 简介 | +| ------------------ | -------- | ----------------------------------------------------------------------------------- | +| [char 字符] | 字符类型 | 使用 `''` 表示,所有的 Unicode 值 | +| [const 常量] | constant | `const MAX_POINTS: u32 = 100_000;` | +| [const 泛型] | 泛型 | `const N: usize` 针对值的泛型,适合处理数组长度的问题 | +| [const 泛型表达式] | 泛型 | | +| [Copy 拷贝] | 浅拷贝 | 任何基本类型的组合可以 `Copy`,不需要分配内存或某种形式资源的类型是可以 `Copy` 的。 | +| [continue] | 循环控制 | 跳过当前当次的循环,开始下次的循环 | +| [Clone 克隆] | 深拷贝 | 需要复制堆上的数据时,可以使用 `.clone()` 方法 | +| | KWC | | [char 字符]: https://course.rs/basic/base-type/char-bool.html#字符类型char [const 常量]: https://course.rs/basic/variable.html#变量和常量之间的差异 [copy 拷贝]: https://course.rs/basic/ownership/ownership.html#拷贝浅拷贝 [clone 克隆]: https://course.rs/basic/ownership/ownership.html#克隆深拷贝 [continue]: https://course.rs/basic/flow-control.html#continue +[const 泛型]: https://course.rs/basic/trait/generic.html#const-泛型rust-151-版本引入的重要特性 +[const 泛型表达式]: https://course.rs/basic/trait/generic.html#const-泛型表达式 [back](#head) ## D -| 名称 | 关键字 | 简介 | -| ---- | ------ | ------------- | -| D | KWD | DIntroduction | +| 名称 | 关键字 | 简介 | +| -------- | -------- | ----------------------------------------------------------------------------------- | +| [derive] | 派生特征 | `#[derive(Trait)]`,被标记的对象自动实现对应的默认特征代码
详见:[附录-派生特征] | +| | KWD | | + +[derive]: https://course.rs/basic/trait/trait.html#通过-derive-派生特征 +[附录-派生特征]: https://course.rs/appendix/derive.html [back](#head) @@ -116,7 +127,7 @@ | ----------------- | -------- | ---------------------------------------- | | [enum 枚举] | 枚举类型 | 允许通过列举可能的成员来定义一个枚举类型 | | [enum 同一化类型] | 枚举方法 | 枚举实现方法 | -| E | KWE | EIntroduction | +| | KWE | | [enum 枚举]: https://course.rs/basic/compound-type/enum.html#枚举 [enum 同一化类型]: https://course.rs/basic/compound-type/enum.html#同一化类型 @@ -125,64 +136,72 @@ ## F -| 名称 | 关键字 | 简介 | -| ---------- | -------- | ---------------------------- | -| [浮点数] | 数值类型 | `f32`
`f64`(默认类型) | -| [for 循环] | 循环控制 | `for item in &collection {}` | -| F | KWF | FIntroduction | +| 名称 | 关键字 | 简介 | +| ---------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [浮点数] | 数值类型 | `f32`
`f64`(默认类型) | +| [for 循环] | 循环控制 | `for item in &collection {}` | +| ['fn' 函数] | | 函数名和变量名使用 `蛇形命名法(snake case)`
函数的位置可以随便放
每个函数参数都需要标注类型 | +| [调用同名的方法] | | 1. 默认调用类型上的方法
`Struct.function(receiver_if_method, next_arg, ...);`
2. 显式调用特征上的方法
`Trait::function(receiver_if_method, next_arg, ...);`
3. [完全限定语法]
`::function(receiver_if_method, next_arg, ...);` | +| | KWF | | [浮点数]: https://course.rs/basic/base-type/numbers.html#浮点类型 [for 循环]: https://course.rs/basic/flow-control.html#for-循环 +['fn' 函数]: https://course.rs/basic/base-type/function.html +[调用同名的方法]: https://course.rs/basic/trait/advance-trait.html#调用同名的方法 +[完全限定语法]: https://course.rs/basic/trait/advance-trait.html#完全限定语法 [back](#head) ## G -| 名称 | 关键字 | 简介 | -| ---- | ------ | ------------- | -| G | KWG | GIntroduction | +| 名称 | 关键字 | 简介 | +| --------------- | ------ | ---------------------------------- | +| [Generics 泛型] | 泛型 | 用同一功能的函数处理不同类型的数据 | +| | KWG | | + +[generics 泛型]: https://course.rs/basic/trait/generic.html [back](#head) ## H -| 名称 | 关键字 | 简介 | -| ------ | ------ | ------------------------------------------------------------------------------------------------- | -| [函数] | `fn` | 函数名和变量名使用 `蛇形命名法(snake case)`
函数的位置可以随便放
每个函数参数都需要标注类型 | -| H | KWH | HIntroduction | - -[函数]: https://course.rs/basic/base-type/function.html +| 名称 | 关键字 | 简介 | +| ---- | ------ | ---- | +| | KWH | | [back](#head) ## I -| 名称 | 关键字 | 简介 | -| ------------- | -------- | --------------------------------------------------------------------- | -| [if else] | 流程控制 | 根据条件执行不同的代码分支 | -| [else if] | 流程控制 | 处理多重条件 | -| [if let 匹配] | 模式匹配 | 当你只要匹配一个条件,且忽略其他条件时就用 `if let`,否则都用 `match` | -| I | KWI | IIntroduction | +| 名称 | 关键字 | 简介 | +| -------------------------------------------- | -------- | --------------------------------------------------------------------- | +| [if else] | 流程控制 | 根据条件执行不同的代码分支 | +| [else if] | 流程控制 | 处理多重条件 | +| [if let 匹配] | 模式匹配 | 当你只要匹配一个条件,且忽略其他条件时就用 `if let`,否则都用 `match` | +| `impl Trait` 1. [函数参数] 2. [函数返回类型] | | | +| | KWI | | [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-匹配 +[函数参数]: https://course.rs/basic/trait/trait.html#使用特征作为函数参数 +[函数返回类型]: https://course.rs/basic/trait/trait.html#函数返回中的-impl-trait [back](#head) ## J -| 名称 | 关键字 | 简介 | -| ---- | ------ | ------------- | -| J | KWJ | JIntroduction | +| 名称 | 关键字 | 简介 | +| ---- | ------ | ---- | +| | KWJ | | [back](#head) ## K -| 名称 | 关键字 | 简介 | -| ---- | ------ | ------------- | -| K | KWK | KIntroduction | +| 名称 | 关键字 | 简介 | +| ---- | ------ | ---- | +| | KWK | | [back](#head) @@ -193,7 +212,7 @@ | [let] | 变量绑定 | `let x : u32 = 5;` | | [let mut] | 可变变量 | `let mut x : u32 = 5; x = 9;` | | [loop 循环] | 循环控制 | 无限循环,注意要配合 [`break`] | -| L | KWL | LIntroduction | +| | KWL | | [let]: https://course.rs/basic/variable.html#变量绑定 [let mut]: https://course.rs/basic/variable.html#变量可变性 @@ -204,17 +223,17 @@ ## M -| 名称 | 关键字 | 简介 | -| --------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [模式绑定] | 模式匹配 | 从模式中取出绑定的值 | -| [全模式列表] | 模式匹配 | 列出了所有的模式匹配 | -| [Method 方法] | `impl` | Rust 的方法往往跟结构体、枚举、特征一起使用 | -| [Method getter] | `getter` | 方法名跟结构体的字段名相同 | -| [match 匹配] | 模式匹配 | `match` 的匹配必须要穷举出所有可能,因此这里用 `_ ` 来代表未列出的所有可能性
`match` 的每一个分支都必须是一个表达式,且所有分支的表达式最终返回值的类型必须相同 | -| [matches! 宏] | 模式匹配 | 将一个表达式跟模式进行匹配,然后返回匹配的结果 `true` 或 `false` | -| [match guard] | 匹配守卫 | 位于 `match` 分支模式之后的额外 `if` 条件,它能为分支模式提供更进一步的匹配条件 | -| [move 移动] | 转移所有权 | `let s2 = s1;`
`s1` 所有权转移给了 `s2`,`s1` 失效 | -| M | KWM | MIntroduction | +| 名称 | 关键字 | 简介 | +| --------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [模式绑定] | 模式匹配 | 从模式中取出绑定的值 | +| [全模式列表] | 模式匹配 | 列出了所有的模式匹配 | +| [Method 方法] | `impl` | Rust 的方法往往跟结构体、枚举、特征一起使用 | +| [Method getter] | `getter` | 方法名跟结构体的字段名相同 | +| [match 匹配] | 模式匹配 | 1. `match` 的匹配必须要穷举出所有可能,因此这里用 `_ ` 来代表未列出的所有可能性
2. `match` 的每一个分支都必须是一个表达式,且所有分支的表达式最终返回值的类型必须相同 | +| [matches! 宏] | 模式匹配 | 将一个表达式跟模式进行匹配,然后返回匹配的结果 `true` 或 `false` | +| [match guard] | 匹配守卫 | 位于 `match` 分支模式之后的额外 `if` 条件,它能为分支模式提供更进一步的匹配条件 | +| [move 移动] | 转移所有权 | `let s2 = s1;`
`s1` 所有权转移给了 `s2`,`s1` 失效 | +| | KWM | | [模式绑定]: https://course.rs/basic/match-pattern/match-if-let.html#模式绑定 [match 匹配]: https://course.rs/basic/match-pattern/match-if-let.html#match-匹配 @@ -229,9 +248,13 @@ ## N -| 名称 | 关键字 | 简介 | -| ---- | ------ | ------------- | -| N | KWN | NIntroduction | +| 名称 | 关键字 | 简介 | +| --------- | ------ | ------------------------------------------------------------------------------------------ | +| [newtype] | | 为一个[元组结构体]创建新类型。该元组结构体封装有一个字段,该字段就是希望实现特征的具体类型 | +| | KWN | | + +[newtype]: https://course.rs/basic/trait/advance-trait.html#在外部类型上实现外部特征newtype +[元组结构体]: https://course.rs/basic/compound-type/struct.html#元组结构体tuple-struct [back](#head) @@ -241,7 +264,7 @@ | ------------- | ----------- | --------------------------------------------------------------- | | [Option] | Option 枚举 | 用于处理空值,**一个变量要么有值:`Some(T)`, 要么为空:`None`** | | [Option 解构] | 模式匹配 | 可以通过 `match` 来实现 | -| O | KWO | OIntroduction | +| | KWO | | [option]: https://course.rs/basic/compound-type/enum.html#option-枚举用于处理空值 [option 解构]: https://course.rs/basic/match-pattern/option.html#匹配-optiont @@ -250,17 +273,17 @@ ## P -| 名称 | 关键字 | 简介 | -| ---- | ------ | ------------- | -| P | KWP | PIntroduction | +| 名称 | 关键字 | 简介 | +| ---- | ------ | ---- | +| | KWP | | [back](#head) ## Q -| 名称 | 关键字 | 简介 | -| ---- | ------ | ------------- | -| Q | KWQ | QIntroduction | +| 名称 | 关键字 | 简介 | +| ---- | ------ | ---- | +| | KWQ | | [back](#head) @@ -269,7 +292,7 @@ | 名称 | 关键字 | 简介 | | ------------ | ------ | ---------------------------------------------------------------------------------- | | [Range 序列] | | 生成连续的数值
只允许用于数字或字符类型
`..` 右半开区间
`..=` 闭合区间 | -| R | KWR | RIntroduction | +| | KWR | | [range 序列]: https://course.rs/basic/base-type/numbers.html#序列range @@ -287,7 +310,8 @@ | [String 转义] | `String` 方法 | 通过转义的方式 `\` 输出 ASCII 和 Unicode 字符 | | [struct 结构体] | 结构体 | 通过关键字 `struct` 定义
一个清晰明确的结构体 `名称`
几个有名字的结构体 `字段`
通过 `.` 访问字段 | | [self &self &mut self] | Method 方法 | `self` 指代类型的实例 | -| S | KWS | SIntroduction | +| [Self 与 self] | | `self` 指代当前的实例对象,`Self` 指代特征或者方法类型的别名 | +| | KWS | | [所有权与堆栈]: https://course.rs/basic/ownership/ownership.html#所有权与堆栈 [所有权原则]: https://course.rs/basic/ownership/ownership.html#所有权原则 @@ -297,19 +321,31 @@ [string 转义]: https://course.rs/basic/compound-type/string-slice.html#字符串转义 [struct 结构体]: https://course.rs/basic/compound-type/struct.html [self &self &mut self]: https://course.rs/basic/method.html#selfself-和-mut-self +[self 与 self]: https://course.rs/basic/trait/trait-object#self-与-self [back](#head) ## T -| 名称 | 关键字 | 简介 | -| -------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Tuple 元组] | | 由多种类型组合一起,元组的长度是固定的,元组中元素的顺序也是固定的
用模式匹配解构元组:`let (x, y, z) = (20, 19.2, 1)`
用 `.` 来访问元组:`tuple.0` 索引从 0 开始 | -| [Tuple Struct] | 元组结构体 | 结构体必须要有名称,但字段可以没有名称
`struct Color(i32, i32, i32);` | -| T | KWT | TIntroduction | +| 名称 | 关键字 | 简介 | +| ------------------------------------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [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` | +| [特征定义中的特征约束] | 特征 | 用来说明一个特征需要实现另一个特征 | +| | KWT | | [tuple 元组]: https://course.rs/basic/compound-type/tuple.html#元组 -[tuple struct]: https://course.rs/basic/compound-type/struct.html?search=#元组结构体tuple-struct +[tuple struct]: https://course.rs/basic/compound-type/struct.html#元组结构体tuple-struct +[trait 特征]: https://course.rs/basic/trait/trait.html#定义特征 +[t: trait]: https://course.rs/basic/trait/trait.html#特征约束trait-bound +[trait object]: https://course.rs/basic/trait/trait-object.html#特征对象定义 +[关联类型]: https://course.rs/basic/trait/advance-trait.html#关联类型 +[默认泛型类型参数]: https://course.rs/basic/trait/advance-trait.html#默认泛型类型参数 +[特征定义中的特征约束]: https://course.rs/basic/trait/advance-trait.html#特征定义中的特征约束 [back](#head) @@ -318,36 +354,38 @@ | 名称 | 关键字 | 简介 | | ------------------ | ---------- | ------------------------------------------- | | [Unit-like Struct] | 单元结构体 | 没有任何字段和属性
`struct AlwaysEqual;` | -| U | KWU | UIntroduction | +| | KWU | | -[unit-like struct]: https://course.rs/basic/compound-type/struct.html?search=#单元结构体unit-like-struct +[unit-like struct]: https://course.rs/basic/compound-type/struct.html#单元结构体unit-like-struct [back](#head) ## V -| 名称 | 关键字 | 简介 | -| ---- | ------ | ------------- | -| V | KWV | VIntroduction | +| 名称 | 关键字 | 简介 | +| ---- | ------ | ---- | +| | KWV | | [back](#head) ## W -| 名称 | 关键字 | 简介 | -| ------------ | -------- | ------------------------------------------------------ | -| [while 循环] | 循环控制 | 当条件为 `true` 时,继续循环,条件为 `false`,跳出循环 | -| W | KWW | WIntroduction | +| 名称 | 关键字 | 简介 | +| ------------ | -------- | ----------------------------------------------------------------- | +| [while 循环] | 循环控制 | 当条件为 `true` 时,继续循环,条件为 `false`,跳出循环 | +| [where 约束] | 特征约束 | 当特征约束变多时,函数签名会很复杂,可以用 `where` 做形式上的改进 | +| | KWW | | [while 循环]: https://course.rs/basic/flow-control.html#while-循环 +[where 约束]: https://course.rs/basic/trait/trait.html#where-约束 [back](#head) ## X -| 名称 | 关键字 | 简介 | -| ---- | ------ | ------------- | -| X | KWX | XIntroduction | +| 名称 | 关键字 | 简介 | +| ---- | ------ | ---- | +| | KWX | | [back](#head) @@ -356,7 +394,7 @@ | 名称 | 关键字 | 简介 | | ------ | ------ | ---------------------------------------------------- | | [语句] | | 完成一个操作,结尾有 `;` ,无返回值,如 `let x = 9;` | -| Y | KWY | YIntroduction | +| | KWY | | [语句]: https://course.rs/basic/base-type/statement-expression.html#语句 @@ -368,7 +406,7 @@ | ------------ | -------- | ---------------------------------------------------------------------------------------------------------------- | | [整数] | 数值类型 | 有符号整数,`i8`,`i16`,`i32`,`i64`,`i128`,`isize`
无符号整数,`u8`,`u16`,`u32`,`u64`,`u128`,`usize` | | [整形字面量] | 进制书写 | 十进制 `98_222`
十六进制 `0xff`
八进制 `0o77`
二进制 `0b1111_0000`
字节(仅限于`u8`) `b'A'` | -| Z | KWZ | ZIntroduction | +| | KWZ | | [整数]: https://course.rs/basic/base-type/numbers.html#整数类型 [整形字面量]: https://course.rs/basic/base-type/numbers.html#整数类型 @@ -377,9 +415,9 @@ ## Cargo -| 名称 | 关键字 | 简介 | -| ----- | ------ | -------------- | -| Cargo | KWCG | CGIntroduction | +| 名称 | 关键字 | 简介 | +| ----- | ------ | ---- | +| Cargo | KWCG | | [back](#head)