网站首页 > 博客文章 正文
rust编程语言里的宏的功能
应该是高级编程技术
提供了对语法的扩展
但是使用上也是有限制的
宏要想嵌套就是有限制的
嵌套就是一个宏需要调用另一个
这时候就需要用回调
回调就是传另一个宏名称
类似JavaScript等其它语言的callback
你在用callback的时候会追加括号()吗
应该不会
否则就不是回调了
而是把callback结果传入来了
宏同样不建议传入另一个宏的结果
所以可行的方式就是回调
macro_rules! pick_dept{
(dp1)=>{println!("got dept 1.")};
(dp2)=>{println!("got dept 2.")};
(dp3)=>{println!("got dept 3.")};
($($other:tt)*)=>{println!("no dept")};
}
macro_rules! got_dept2{
()=>{dp2};
}
pick_dept!(got_dept2!());
输出结果就是no dept
macro_rules! call_dept2{
($call:ident)=>{
$call!(dp2)
};
}
回调方式是
call_dept2!(pick_dept)
这次输出结果就是got dept 2.
怎么样,了解了么
- 上一篇: 宏编程-quote(宏编程手柄)
- 下一篇: Rust中巧用matches!宏(rust腐蚀免费版)
猜你喜欢
- 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 基础入门-错误处理和宏-属性式宏&函数式宏
- 2024-09-11 Rust中巧用matches!宏(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)
本文暂时没有评论,来添加一个吧(●'◡'●)