| `type::method(...)` | Disambiguating a method call by naming the type for which it’s defined |
| `type::method(...)` | 通过命名定义的类型来消除方法调用的二义性 |
| `<type as trait>::method(...)` | 通过命名 trait 和类型来消除方法调用的二义性 |
| `<type as trait>::method(...)` | Disambiguating a method call by naming the trait and type |
表 B-4 展示了出现在泛型类型参数上下文中的符号。
@ -119,29 +120,29 @@
| 符号 | 解释 |
|--------|-------------|
| `path<...>` | Specifies parameters to generic type in a type (e.g., `Vec<u8>`) |
| `path::<...>`, `method::<...>` | Specifies parameters to generic type, function, or method in an expression; often referred to as turbofish (e.g., `"42".parse::<i32>()`) |
Table B-5 shows symbols that appear in the context of constraining generic type parameters with trait bounds.
Table B-5 展示了出现在使用 trait bounds 约束泛型参数上下文中的符号。
<spanclass="caption">表 B-5: Trait Bound 约束</span>
| 符号 | 解释 |
|--------|-------------|
| `T: U` | Generic parameter `T` constrained to types that implement `U` |
| `T: 'a` | Generic type `T` must outlive lifetime `'a` (meaning the type cannot transitively contain any references with lifetimes shorter than `'a`) |
| `T : 'static` | Generic type `T` contains no borrowed references other than `'static` ones |
Table B-6 shows symbols that appear in the context of calling or defining macros and specifying attributes on an item.
Table B-6 展示了在调用或定义宏以及在其上指定属性时的上下文中出现的符号。
<spanclass="caption">表 B-6: 宏与属性</span>
@ -149,9 +150,9 @@ Table B-6 shows symbols that appear in the context of calling or defining macros
|--------|-------------|
| `#[meta]` | 外部属性 |
| `#![meta]` | 内部属性 |
| `$ident` | Macro substitution |
| `$ident:kind` | Macro capture |
| `$(…)…` | Macro repetition |
| `$ident` | 宏替换 |
| `$ident:kind` | 宏捕获 |
| `$(…)…` | 宏重复 |
表 B-7 展示了写注释的符号。
@ -168,10 +169,10 @@ Table B-6 shows symbols that appear in the context of calling or defining macros
表 B-8 展示了出现在使用元组时上下文中的符号。
| Symbol | Explanation |
| 符号 | 解释 |
|--------|-------------|
| `()` | 空元祖(亦称单元), 用于字面量值或类型中 |
| `(expr)` | Parenthesized expression |
| `()` | 空元祖(亦称单元), 用于常量或类型中 |
| `(expr)` | 括号表达式 |
| `(expr,)` | 单一元素元组表达式 |
| `(type,)` | 单一元素元组类型 |
| `(expr, ...)` | 元组表达式 |
@ -183,7 +184,6 @@ Table B-6 shows symbols that appear in the context of calling or defining macros
表 B-9 使用大括号的符号。
| 符号 | 解释 |
|---------|-------------|
| `{...}` | 块表达式 |
| `Type {...}` | `struct` |
@ -193,15 +193,9 @@ Table B-6 shows symbols that appear in the context of calling or defining macros
<spanclass="caption">表 B-10: 方括号</span>
| 符号 | 解释 |
|---------|-------------|
| `[...]` | 数组 |
| `[expr; len]` | 复制了 `len`个 `expr`的数组 |
| `[type; len]` | 包含 `len`个 `type` 类型的数组|
| `expr[expr]` | 集合索引。 重载(`Index`, `IndexMut`) |
| `expr[..]`, `expr[a..]`, `expr[..b]`, `expr[a..b]` | Collection indexing pretending to be collection slicing, using `Range`, `RangeFrom`, `RangeTo`, or `RangeFull` as the “index” |