mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2025-02-22 20:22:18 +08:00
fix anchor
This commit is contained in:
parent
8c0eb32d86
commit
f1daab41ba
@ -503,11 +503,8 @@ fn main() {
|
||||
|
||||
上面便是 newtype 模式如何与 trait 结合使用的;还有一个不涉及 trait 的实用模式。现在让我们将话题的焦点转移到一些与 Rust 类型系统交互的高级方法上来吧。
|
||||
|
||||
[implementing-a-trait-on-a-type]:
|
||||
ch10-02-traits.html#implementing-a-trait-on-a-type
|
||||
[the-iterator-trait-and-the-next-method]:
|
||||
ch13-02-iterators.html#the-iterator-trait-and-the-next-method
|
||||
[traits-defining-shared-behavior]:
|
||||
ch10-02-traits.html#traits-defining-shared-behavior
|
||||
[smart-pointer-deref]: ch15-02-deref.html#treating-smart-pointers-like-regular-references-with-the-deref-trait
|
||||
[tuple-structs]: ch05-01-defining-structs.html#using-tuple-structs-without-named-fields-to-create-different-types
|
||||
[implementing-a-trait-on-a-type]: ch10-02-traits.html#为类型实现-trait
|
||||
[the-iterator-trait-and-the-next-method]: ch13-02-iterators.html#iterator-trait-和-next-方法
|
||||
[traits-defining-shared-behavior]: ch10-02-traits.html#trait定义共享的行为
|
||||
[smart-pointer-deref]: ch15-02-deref.html#通过实现-deref-trait-将某类型像引用一样处理
|
||||
[tuple-structs]: ch05-01-defining-structs.html#使用没有命名字段的元组结构体来创建不同的类型
|
||||
|
@ -116,7 +116,5 @@ fn returns_closure() -> Box<dyn Fn(i32) -> i32> {
|
||||
|
||||
接下来让我们学习宏!
|
||||
|
||||
[advanced-traits]:
|
||||
ch19-03-advanced-traits.html#advanced-traits
|
||||
[using-trait-objects-that-allow-for-values-of-different-types]:
|
||||
ch17-02-trait-objects.html#using-trait-objects-that-allow-for-values-of-different-types
|
||||
[advanced-traits]: ch19-03-advanced-traits.html#高级-trait
|
||||
[using-trait-objects-that-allow-for-values-of-different-types]: ch17-02-trait-objects.html#为使用不同类型的值而设计的-trait-对象
|
||||
|
@ -341,7 +341,7 @@ pub fn route(attr: TokenStream, item: TokenStream) -> TokenStream {
|
||||
|
||||
类函数宏定义看起来像函数调用的宏。类似于 `macro_rules!`,它们比函数更灵活;例如,可以接受未知数量的参数。然而 `macro_rules!` 宏只能使用之前 [“使用 `macro_rules!` 的声明宏用于通用元编程”][decl] 介绍的类匹配的语法定义。类函数宏获取 `TokenStream` 参数,其定义使用 Rust 代码操纵 `TokenStream`,就像另两种过程宏一样。一个类函数宏例子是可以像这样被调用的 `sql!` 宏:
|
||||
|
||||
[decl]: #declarative-macros-with-macro_rules-for-general-metaprogramming
|
||||
[decl]: #使用-macro_rules-的声明宏用于通用元编程
|
||||
|
||||
```rust,ignore
|
||||
let sql = sql!(SELECT * FROM posts WHERE id=1);
|
||||
|
Loading…
Reference in New Issue
Block a user