在 Rust 中,宏(Macro)主要分为两大类:声明式宏(Declarative Macros) 和 过程宏(Procedural Macros)。其中,过程宏又细分为三种具体的类型。 以下是详细的分类和解释: --- 1. 声明式宏 (Declarative Macros) 这是 Rust 中最常见、使用最广泛的宏类型,通常被称为 "Macros by Example"(通过示例定义的宏)。 定义方式:使用 构造。 工作原理:类似于 表达式。它将用户编写的宏代码与预定义的模式(Pattern)进行匹配,一旦匹配成功,就将代码替换为宏定义中对应的代码块。 特点: 相对简单,不需要编写复杂的 Rust 代码来解析语法树。 卫生性(Hygienic):通常不会意外污染外部作用域的变量名。 常见例子:, , 。 示例: --- 2. 过程宏 (Procedural Macros) 过程宏比声明式宏更强大,但也更复杂。它们像是一个编译器插件。 工作原理:过程宏接收 Rust 代码作为输入(以 的形式),对其进行操作(通常是解析、修改或生成新代码),然后产生新的 作为输出。 定义要求:必...