// 这是一个简单的宏,名为 `say_hello`。
macro_rules! say_hello {
    // `()` 表示此宏不接受任何参数。
    () => (
        // 此宏将会展开成这个代码块里面的内容。
        println!("Hello!");
    )
}

macro_rules! say_hello2 {
    // `()` 表示此宏不接受任何参数。
    ($args:tt) => (
        // 此宏将会展开成这个代码块里面的内容。
        println!("Hello! {}", $args);
    )
}

fn main() {
    // 这个调用将会展开成 `println("Hello");`!
    say_hello!()
    say_hello2!("fd")
    say_hello2!(1)
    say_hello2!(true)
    // err : say_hello2!(1,2,3,4) 参数还是要跟定义一样
}

这里跟普能函数区别就是。他传的参数是可以是你在编辑器上的填的字符。在say_hello2中就相当于编译后。会将"fd"替换掉定义里的$args,是字符替换。不是传参数。这样就很好区分他和函数的区别。

标签: none

已有 18 条评论

  1. 博主真是太厉害了!!!

  2. 想想你的文章写的特别好https://www.jiwenlaw.com/

  3. 不错不错,我喜欢看 https://www.237fa.com/

  4. 不错不错,我喜欢看 www.jiwenlaw.com

  5. 不错不错,我喜欢看 www.jiwenlaw.com

  6. 《控制》动作片高清在线免费观看:https://www.jgz518.com/xingkong/38135.html

  7. 你的文章让我学到了很多知识,非常感谢。 http://www.55baobei.com/98WRjJDfDc.html

  8. 谁拥有那些独特的变态私服传奇版本?:https://501h.com/jingpin/16917.html

  9. 你的文章让我感受到了快乐,每天都要来看一看。 https://www.4006400989.com/qyvideo/88214.html

  10. 你的文章让我学到了很多知识,非常感谢。 http://www.55baobei.com/98WRjJDfDc.html

  11. 你的才华横溢,让人敬佩。 http://www.55baobei.com/ETajW26vKt.html

  12. 你的文章让我感受到了快乐,每天都要来看一看。 https://www.4006400989.com/qyvideo/88214.html

  13. 博主太厉害了!

  14. heisechunjingshui.com

  15. 你的文章让我感受到了艺术的魅力,谢谢! https://www.yonboz.com/video/49841.html

  16. 《张飞审瓜》动画片高清在线免费观看:https://www.jgz518.com/xingkong/135661.html

  17. 《僵尸校园》韩国剧高清在线免费观看:https://www.jgz518.com/xingkong/41215.html

  18. 你的文章让我学到了很多知识,非常感谢。 https://www.yonboz.com/video/96760.html

添加新评论