rust基础-宏与方法之间的区别

宏(Macros) vs 方法(Methods)

区别 方法(Methods) 宏(Macros)
定义方式 impl 块中定义,绑定到具体类型。 通过 macro_rules! 或过程宏定义,生成代码。
调用时机 运行时执行逻辑(如计算数据)。 编译时展开为具体代码(如生成重复逻辑)。
作用对象 操作实例数据(如结构体、枚举的字段)。 操作代码片段(元编程),可生成任意代码。
参数 固定参数数量和类型。 支持可变参数和模式匹配(如 sum!(1, 2, 3))。
错误处理 错误可能在运行时出现。 错误在编译时(如宏展开失败)直接报错。
适用场景 封装类型行为(如计算、修改数据)。 生成代码、扩展语法(如 println!)、编译时计算。
相关推荐
古时的风筝1 分钟前
花10 分钟时间,把终端改造成“生产力武器”:Ghostty + Yazi + Lazygit 配置全流程
前端·后端·程序员
Cache技术分享2 分钟前
340. Java Stream API - 理解并行流的额外开销
前端·后端
初次攀爬者5 分钟前
RocketMQ 消息可靠性保障与堆积处理
后端·消息队列·rocketmq
ygxb11 分钟前
如何去创建一个规范化的Agent SKIll?
后端·ai编程·claude
JxWang0538 分钟前
Task01:环境搭建,初识数据库
后端
周杰伦jc39 分钟前
RocketMQ 完全指南:从入门到原理到生产实战、八股面试
后端
小码哥_常39 分钟前
Java可执行JAR包打包大揭秘:三种方式全解析
后端
掘金者阿豪39 分钟前
Halo的“傻瓜建站魔法”:cpolar内网穿透实验室第637个成功挑战
后端
koddnty41 分钟前
c++协程控制流深入剖析
后端·架构
小码哥_常43 分钟前
Spring Boot 集成DFA:打造高效内容安全卫士
后端