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

宏(Macros) vs 方法(Methods)

区别 方法(Methods) 宏(Macros)
定义方式 impl 块中定义,绑定到具体类型。 通过 macro_rules! 或过程宏定义,生成代码。
调用时机 运行时执行逻辑(如计算数据)。 编译时展开为具体代码(如生成重复逻辑)。
作用对象 操作实例数据(如结构体、枚举的字段)。 操作代码片段(元编程),可生成任意代码。
参数 固定参数数量和类型。 支持可变参数和模式匹配(如 sum!(1, 2, 3))。
错误处理 错误可能在运行时出现。 错误在编译时(如宏展开失败)直接报错。
适用场景 封装类型行为(如计算、修改数据)。 生成代码、扩展语法(如 println!)、编译时计算。
相关推荐
itjinyin17 分钟前
ShardingSphere-jdbc 5.5.0 + spring boot 基础配置 - 实战篇
java·spring boot·后端
Victor35640 分钟前
MongoDB(91)如何在MongoDB中使用TTL索引?
后端
老王以为40 分钟前
前端重生之 - 前端视角下的 Python
前端·后端·python
Victor35641 分钟前
MongoDB(92)什么是变更流(Change Streams)?
后端
云边有个稻草人1 小时前
Docker部署KingbaseES数据库操作指南
后端
NineData1 小时前
NineData亮相香港国际创科展InnoEX 2026,以AI加速布局全球市场
运维·后端
码农BookSea1 小时前
Hermes 深度解析:自我进化的 AI 智能体新范式
后端·ai编程
老马95271 小时前
opencode4-在已有项目中增加修改功能
java·后端·ai编程
Moe4881 小时前
Spring AI:结构化输出
java·后端·面试
GreenTea1 小时前
Deep Dive into Claude Code:源码泄漏引发的AI Agent架构全解析
前端·人工智能·后端