mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2025-01-30 06:00:13 +08:00
Update Ch21
This commit is contained in:
parent
b7936728ff
commit
a8d271968b
@ -1313,7 +1313,7 @@ fn returns_closure() -> Box<dyn Fn(i32) -> i32> {
|
||||
接下来,咱们就要看看宏了!
|
||||
|
||||
|
||||
## 关于宏
|
||||
## 关于宏 <a id="macros"></a>
|
||||
|
||||
**Macros**
|
||||
|
||||
|
@ -326,4 +326,14 @@ fn main() {
|
||||
|
||||
若咱们想要不同于由 `derive` 属性所提供的行为,请参考 [标准库文档](https://doc.rust-lang.org/std/index.html),了解如何亲自实现各个特质的详细信息。
|
||||
|
||||
这里列出的这些特质,只是一些由标准库所提供的,可使用 `derive` 实现于咱们类型上的那些。定义在标准库中别的一些特质,则没有什么合理的默认行为,因此是否要以对于咱们正尝试完成的东西有意义的方式,实现他们就取决于咱们自己了。
|
||||
|
||||
不能派生的一个特质示例便是 `Display`,其为终端用户处理格式化。咱们应始终要考虑将某个类型显示给用户的恰当方式。终端用户应被允许看到该类型的哪些部分?他们会发现哪些部分是相关的?数据的何种形式才是与他们最为密切相关的?Rust 编译器并无这种见解,因此他就无法为咱们提供到恰当的默认行为。
|
||||
|
||||
这个附录中所提供到的派生特质清单并不详尽:库可以为他们自己的特质实现 `derive`,从而领导咱们可使用 `derive` 的特质清单为真正开放的。实现 `derive` 设计到使用程序性宏,这在第 19 张的 [“宏”](#macros) 小节讲到过。
|
||||
|
||||
### 输出给编程者的 `Debug`
|
||||
|
||||
**`Debug` for Programmer Output**
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user