Rust语言宏原理及开发教程
Rust语言最强大的一个特点就是可以创建和利用宏/Macro。不过创建Rust宏看起来挺复杂,常常令刚接触Rust的开发者心生畏惧。这片文章的目的就是帮助你理解Rust Macro的基本运作原理,学习如何创建自己的Rust宏。 相关链接: 在线学编程 1、什么是Rust的宏/Macro? 如果你尝试过Rust,应该已经用过Rust的宏了: println! 。这个宏可以在终端输出一行文本,并且支持变量的插值。 简单地说,Rust宏让你可以发明自己的语法,编写出可以自行展开的代码,也就是我们通常所说的 元编程 ,你甚至可以用Rust宏来创作自己的DSL。 Rust宏的基本运作机制就是:首先匹配宏规则中定义的模式,然后将匹配结果绑定到变量,最后展开变量替换后的代码。 不理解也没有关系,让我们继续看。 2、如果创建Rust宏/Macro? 可以使用Rust预置的 macro_rules! 宏来创建一个新的Rust宏。 下图展示了如何创建一个空白的Rust宏: hey! ,这个宏什么功能也没有,我们现在只关注它的结构: () => {} 看起来很神秘,因为它不是标准的rust语法,是macro_rules!这个宏自己发明的,用来表示一条宏规则, => 左边是匹配模式,右边是等待展开的代码: 左边的小括号部分是Rust宏的匹配器/Matcher,用来匹配模式并捕捉变量