Merge pull request #852 from vhtmui/optimize/ch20-06-macros

Optimize/ch20 06 macros
pull/853/head
KaiserY 4 days ago committed by GitHub
commit 20712562d7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -6,9 +6,9 @@
我们已经在本书中使用过像 `println!` 这样的宏了,不过还没完全探索什么是宏以及它是如何工作的。**宏***Macro*)指的是 Rust 中一系列的功能:使用 `macro_rules!`**声明***Declarative*)宏,和三种 **过程***Procedural*)宏:
* 自定义 `#[derive]`在结构体和枚举上指定通过 `derive` 属性添加的代码
* 类属性Attribute-like宏定义可用于任意项的自定义属性
* 类函数宏看起来像函数不过作用于作为参数传递的 token
* 自定义 `#[derive]`,用于在结构体和枚举上通过添加 `derive` 属性生成代码
* 类属性宏定义可用于任意项的自定义属性
* 类函数宏,看起来像函数,但操作的是作为其参数传递的 token
我们会依次讨论每一种宏,不过首要的是,为什么已经有了函数还需要宏呢?

Loading…
Cancel
Save