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

宏(Macros) vs 方法(Methods)

区别 方法(Methods) 宏(Macros)
定义方式 impl 块中定义,绑定到具体类型。 通过 macro_rules! 或过程宏定义,生成代码。
调用时机 运行时执行逻辑(如计算数据)。 编译时展开为具体代码(如生成重复逻辑)。
作用对象 操作实例数据(如结构体、枚举的字段)。 操作代码片段(元编程),可生成任意代码。
参数 固定参数数量和类型。 支持可变参数和模式匹配(如 sum!(1, 2, 3))。
错误处理 错误可能在运行时出现。 错误在编译时(如宏展开失败)直接报错。
适用场景 封装类型行为(如计算、修改数据)。 生成代码、扩展语法(如 println!)、编译时计算。
相关推荐
爱勇宝13 小时前
第 1 章:别把“需求文档”当成真正的需求
前端·后端·程序员
花褪残红青杏小14 小时前
Rust图像处理第12节-图片翻转与旋转:坐标重映射几何变换
rust·webassembly·图形学
IT_陈寒17 小时前
闭包陷阱让我加了两天班,JavaScript你真行
前端·人工智能·后端
易协同低代码19 小时前
通达OA核心类库TD类深度解析
后端
Gopher_HBo19 小时前
Go语言学习笔记(十八)Gin处理Session
后端
谭光志19 小时前
工具塞满上下文窗口怎么办?深度拆解 AI Agent Tool Search 按需加载实现原理
前端·后端·ai编程
她说..20 小时前
Java 默认值设置方式
java·开发语言·后端·springboot
foggyprojects20 小时前
从0开始,一句话启动AI DataAgent
后端·数据分析·ai编程
郡杰20 小时前
一些基础和问题解决
后端
陈随易20 小时前
前端项目部署只要30秒
前端·后端·程序员