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

宏(Macros) vs 方法(Methods)

区别 方法(Methods) 宏(Macros)
定义方式 impl 块中定义,绑定到具体类型。 通过 macro_rules! 或过程宏定义,生成代码。
调用时机 运行时执行逻辑(如计算数据)。 编译时展开为具体代码(如生成重复逻辑)。
作用对象 操作实例数据(如结构体、枚举的字段)。 操作代码片段(元编程),可生成任意代码。
参数 固定参数数量和类型。 支持可变参数和模式匹配(如 sum!(1, 2, 3))。
错误处理 错误可能在运行时出现。 错误在编译时(如宏展开失败)直接报错。
适用场景 封装类型行为(如计算、修改数据)。 生成代码、扩展语法(如 println!)、编译时计算。
相关推荐
辜月十2 分钟前
Docker-Compose 【Mysql】
后端
悟空码字2 分钟前
SpringBoot实现系统监控:给应用装上“健康手环”
java·后端·监控
GuluGuluWater2 分钟前
受够了同事的垃圾代码?我用 Go 写了个自动审查工具
后端
楼田莉子3 分钟前
Linux学习:基础IO相关学习
linux·开发语言·c++·后端·学习
golang学习记4 分钟前
Go 中获取两个切片交集的 6 种方法
后端
Cache技术分享7 分钟前
261. Java 集合 - Java 开发必备:ArrayList 与 LinkedList 的选择攻略
前端·后端
golang学习记8 分钟前
换掉 Maven?全新一代 Java 项目构建工具来了 —— **Maven-mvnd**,性能炸裂!
后端
汤姆yu29 分钟前
基于springboot的智能化人员物资调度系统
数据库·spring boot·后端
用户3778330434930 分钟前
( 教学 )Agent 构建 Prompt(提示词)4. JsonOutputParser
人工智能·后端
一 乐31 分钟前
宠物店管理|基于Java+vue的宠物猫店管理管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端