• 使用 macro_rules! 来创建宏

    使用 macro_rules! 来创建宏

    Rust 提供了一个强大的宏系统,可进行元编程(metaprogramming)。正如你已经看过了前面章节,宏看起来和函数很像,除了名称末尾连着一个感叹号 ! ,但宏并不产生一个函数调用,而是展开成源码并结合程序的其余代码一起进行编译。

    宏是通过 macro_rules! 宏来创建的。

    1. // 这是一个简单简单的宏,名为 `say_hello`。
    2. macro_rules! say_hello {
    3. // `()` 表示此宏不接受任何参数。
    4. () => (
    5. // 此宏将会展开成这个代码块里面的内容。
    6. println!("Hello!");
    7. )
    8. }
    9. fn main() {
    10. // 这个调用将会展开成 `println("Hello");`!
    11. say_hello!()
    12. }