From ad68a93ac9794baefa0eaef88999ff0839cf7355 Mon Sep 17 00:00:00 2001 From: YangFong <70502828+YangFong@users.noreply.github.com> Date: Sun, 16 Jan 2022 10:40:00 +0800 Subject: [PATCH] docs: Reformat the document --- src/appendix-02-operators.md | 4 ++-- src/appendix-03-derivable-traits.md | 12 ++++++------ src/ch15-02-deref.md | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/appendix-02-operators.md b/src/appendix-02-operators.md index 43b1cec..9acaf8e 100644 --- a/src/appendix-02-operators.md +++ b/src/appendix-02-operators.md @@ -188,7 +188,7 @@ | 符号 | 解释 | |---------|-------------| | `[...]` | 数组 | -| `[expr; len]` | 复制了 `len`个 `expr`的数组 | -| `[type; len]` | 包含 `len`个 `type` 类型的数组| +| `[expr; len]` | 复制了 `len` 个 `expr` 的数组 | +| `[type; len]` | 包含 `len` 个 `type` 类型的数组| | `expr[expr]` | 集合索引。 重载(`Index`, `IndexMut`) | | `expr[..]`, `expr[a..]`, `expr[..b]`, `expr[a..b]` | 集合索引,使用 `Range`,`RangeFrom`,`RangeTo` 或 `RangeFull` 作为索引来代替集合 slice | diff --git a/src/appendix-03-derivable-traits.md b/src/appendix-03-derivable-traits.md index 5b6e3de..8d5f236 100644 --- a/src/appendix-03-derivable-traits.md +++ b/src/appendix-03-derivable-traits.md @@ -4,11 +4,11 @@ 在本附录中提供了标准库中所有可以使用 `derive` 的 trait 的参考。这些部分涉及到: -* 该 trait 将会派生什么样的操作符和方法 -* 由 `derive` 提供什么样的 trait 实现 -* 由什么来实现类型的 trait -* 是否允许实现该 trait 的条件 -* 需要 trait 操作的例子 +- 该 trait 将会派生什么样的操作符和方法 +- 由 `derive` 提供什么样的 trait 实现 +- 由什么来实现类型的 trait +- 是否允许实现该 trait 的条件 +- 需要 trait 操作的例子 如果你希望不同于 `derive` 属性所提供的行为,请查阅 [标准库文档](https://doc.rust-lang.org/std/index.html) 中每个 trait 的细节以了解如何手动实现它们。 @@ -82,7 +82,7 @@ `Default::default` 函数通常结合结构体更新语法一起使用,这在第 5 章的 [“使用结构体更新语法从其他实例中创建实例”][creating-instances-from-other-instances-with-struct-update-syntax] 部分有讨论。可以自定义一个结构体的一小部分字段而剩余字段则使用 `..Default::default()` 设置为默认值。 -例如,当你在 `Option` 实例上使用 `unwrap_or_default` 方法时,`Default` trait是必须的。如果 `Option` 是 `None`的话, `unwrap_or_default` 方法将返回存储在 `Option` 中 `T` 类型的 `Default::default` 的结果。 +例如,当你在 `Option` 实例上使用 `unwrap_or_default` 方法时,`Default` trait 是必须的。如果 `Option` 是 `None` 的话, `unwrap_or_default` 方法将返回存储在 `Option` 中 `T` 类型的 `Default::default` 的结果。 [creating-instances-from-other-instances-with-struct-update-syntax]: ch05-01-defining-structs.html#creating-instances-from-other-instances-with-struct-update-syntax diff --git a/src/ch15-02-deref.md b/src/ch15-02-deref.md index 624a61f..9a2f621 100644 --- a/src/ch15-02-deref.md +++ b/src/ch15-02-deref.md @@ -8,7 +8,7 @@ ### 通过解引用运算符追踪指针的值 -常规引用是一个指针类型,一种理解指针的方式是将其看成指向储存在其他某处值的箭头。在示例 15-6 中,创建了一个 `i32` 值的引用y,接着使用解引用运算符来解出y所引用的值: +常规引用是一种指针类型,一种理解指针的方式是将其看成指向储存在其他某处值的箭头。在示例 15-6 中,创建了一个 `i32` 值的引用,接着使用解引用运算符解出所引用的值: 文件名: src/main.rs @@ -153,8 +153,8 @@ Rust 将 `*` 运算符替换为先调用 `deref` 方法再进行普通解引用 ### 函数和方法的隐式解引用强制转换 -**解引用强制转换**(_deref coercions_)是 Rust 在函数或方法传参上的一种便利。解引用强制转换只能工作在实现了Deref trait的类型上。解引用强制转换将一种类型(A)隐式转换为另外一种类型(B)的引用,因为A类型实现了Deref trait,并且其关联类型是B类型。比如,解引用强制转换可以将&String转换为&str,因为类型String实现了Deref trait并且其关联类型是str。代码如下: - +**解引用强制转换**(_deref coercions_)是 Rust 在函数或方法传参上的一种便利。解引用强制转换只能工作在实现了 Deref trait 的类型上。解引用强制转换将一种类型(A)隐式转换为另外一种类型(B)的引用,因为 A 类型实现了 Deref trait,并且其关联类型是 B 类型。比如,解引用强制转换可以将 &String 转换为 &str,因为类型 String 实现了 Deref trait 并且其关联类型是 str。代码如下: + ```rust,ignore,does_not_compile #[stable(feature = "rust1", since = "1.0.0")] impl ops::Deref for String {