网站首页 > 博客文章 正文
概念
在前几节的基础上,我们继续学习属性式宏和函数式宏。
说明:也有人将其称为 类属性宏 和 类函数宏,但这里提到的“类”并不是面向对象编程中的class,而是like,类似于的意思,因此这种叫法很容易让人混淆,翻译成“属性式”和“函数式”则更加贴切。
属性式宏(attribute-like macro):定义了可添加到标记对象的新外部属性。这种宏通过#[attr]或#[attr(…)]方式调用,其中…是标记的具体属性(可选)。
一个属性式宏定义的简单框架如下所示:
这里需要注意的是,与派生宏、函数式宏不同,属性式宏有两个输入参数,而不是一个。
●第一个参数是属性名称后面的带分隔符的标记项(即#[attr(…)]中(…)的具体内容)。如果只有属性名称(其后不带标记项,比如 #[attr]),则这个参数的值为空。
●第二个参数是标记的代码项本身的 Token 流,它可以是被标记的字段、结构体、函数等(见真实用例)。
文档:
如下的代码展示了一些常见的属性式宏:#[cfg(…)]是根据条件编译的属性宏、#[test]是用于标记测试函数的属性宏、#[allow(...)]和 #[warn(...)]控制编译器的警告级别。
示例代码:
这里展示了常见的函数式宏。
猜你喜欢
- 2024-09-11 Rust 写操作系统之Hello world (三)
- 2024-09-11 Rust: 如何用Panic打造健壮应用(rust zig)
- 2024-09-11 在 Linux 新版内核中的 Rust 初探,原来是这样的
- 2024-09-11 Rust 向量(Vec)(rust 向量化)
- 2024-09-11 Rust 入坑指南:鳞次栉比 | CSDN 博文精选
- 2024-09-11 学习Rust编程——使用macro_rules!创建宏
- 2024-09-11 利用 Rust 过程宏实现的 derive-with 库
- 2024-09-11 Rust 基础入门-错误处理和宏-错误处理
- 2024-09-11 Rust中巧用matches!宏(rust腐蚀免费版)
- 2024-09-11 Rust编程语言里的宏回调(rust宏数据)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)