声明宏

一个简单的声明宏(Macro), Say Hello

一个简单的声明宏(Macro),say_hello,用于打印一条消息。

#![allow(unused)]
fn main() {
macro_rules! say_hello {
    () => {
        println!("Hello from macro!");
    };
}

fn declare_macros_hello_sample() {
    say_hello!(); // 调用宏
}

}

带参数的声明宏

带参数的声明宏(Macro),make_vec,用于创建一个动态数组,并初始化值,与标准库的vec! 很像吧。

#![allow(unused)]

fn main() {
macro_rules! make_vec {
    ( $( $x:expr ),* ) => {
        {
            let mut temp_vec = Vec::new();
            $( temp_vec.push($x); )*
            temp_vec
        }
    };
}

fn declare_macros_make_sample() {
    let v = make_vec!(1, 2, 3, 4);
    println!("{:?}", v); // [1, 2, 3, 4]
}

}