•什么是元编程。
•Rust中的宏及其形式。
•声明性宏、宏变量及类型。
•重复构造。
•过程宏。
•宏的用例。
•可用的宏程序库。
什么是元编程?
元编程是改变你查看程序中指令和数据方式的一种技术。它允许你像处理任何其他数据那样通过指令生成新的代码。
无论使用何种语言构造的程序一般都包含两个实体:数据和操作数据的指令。通常程序的运行过程都涉及操纵数据。
Rust宏的应用场景
一般的经验法则是,宏可以在函数无法提供所需解决方案的情况下使用,其中的代码具有相当的重复性,或者在需要检查类型结构体并在编译期生成代码的情况下使用宏。会用到Rust宏,如下。
•通过创建自定义领域特定语言(Domain-Specific Lan-guage,DSL)来扩展语言语法。
•编写编译期序列化代码,就像serde那样。
•将计算操作移动到编译期,从而减少运行时开销。
•编写样板测试代码和自动化测试用例。
•提供零成本日志记录抽象,例如log软件包。
Rust中的宏及其类型
首先,编译器逐字节地读取源代码,并将字符分组为有意义的块,这些块被称为令牌。
声明式宏:这些是宏的最简单形式。它们是使用macro_rules!宏创建的,其本身就是一个宏。它们提供与调用函数类似的功能,但是很容易通过名称末尾的!予以区分。它们是在项目中快速编写小型宏的首选方法。定义它们的语法与编写match表达式的方式非常相似。它们被称为声明式宏,这意味着你已经拥有了一个迷你型的DSL,然后可以识别标记类型和重复构造,使用它们可以声明式地表达你想要生成