Rust macro 宏

发布时间: 更新时间: 总字数:384 阅读时间:1m 作者: IP属地: 分享 复制网址

Rust的宏(macro)指一组相关特性的集合。

介绍

  • 使用 macro_rules! 构建的 声明宏(declarative macro),标记为弃用,需要满足 macro_rules!
  • 3中过程宏
    • 自定义 #[derive]
      • 用在 structenum,为其指定随 derive 属性添加的代码
    • 类似属性的宏,属性宏允许重建新的属性
      • 在任何条目上添加自定义属性,如函数 #[route(GET, "/")\nfn index(){}
    • 类似函数的宏,看起来像函数调用,对其指定为参数的 token 进行操作

函数和宏的差别

    • 宏是用来编写可以生成其他代码的代码(元编程, meta-programing)
    • 编译器在解释代码前展开宏
    • 宏的定义比函数复杂,难以理解、阅读、维护
  • 函数在定义签名时,必须声明参数的个数和类型,宏可处理可变的参数
  • 调用宏时,必须提前定义宏或引入宏到当前作用域;函数可以在任何位置定义和使用

struct 格式化输出

struct 上加注解 #[derive(Debug)]

  • {:?} // 行输出
  • {:#?} // 格式化输出
  • std::fmt::Displaystd::fmt::Debug

常见宏:

  • 标准输出(stdout):println!
  • 标准错误(stderr):eprintln!
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数