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

宏(Macros) vs 方法(Methods)

区别 方法(Methods) 宏(Macros)
定义方式 impl 块中定义,绑定到具体类型。 通过 macro_rules! 或过程宏定义,生成代码。
调用时机 运行时执行逻辑(如计算数据)。 编译时展开为具体代码(如生成重复逻辑)。
作用对象 操作实例数据(如结构体、枚举的字段)。 操作代码片段(元编程),可生成任意代码。
参数 固定参数数量和类型。 支持可变参数和模式匹配(如 sum!(1, 2, 3))。
错误处理 错误可能在运行时出现。 错误在编译时(如宏展开失败)直接报错。
适用场景 封装类型行为(如计算、修改数据)。 生成代码、扩展语法(如 println!)、编译时计算。
相关推荐
曹轲恒17 小时前
SpringBoot的热部署
java·spring boot·后端
bing.shao17 小时前
Golang 在OPC领域的应用
开发语言·后端·golang
程序员侠客行18 小时前
Mybatis插件原理及分页插件
java·后端·架构·mybatis
Mcband18 小时前
Spring Boot 整合 ShedLock 处理定时任务重复执行的问题
java·spring boot·后端
无名-CODING18 小时前
Spring Bean生命周期详解:从入门到精通
java·后端·spring
源代码•宸18 小时前
大厂技术岗面试之一面(准备自我介绍、反问)
经验分享·后端·算法·面试·职场和发展·golang·反问
晚风吹长发1 天前
初步了解Linux中的动静态库及其制作和使用
linux·运维·服务器·数据结构·c++·后端·算法
梁下轻语的秋缘1 天前
ESP32-WROOM-32E存储全解析:RAM/Flash/SD卡读写与速度对比
java·后端·spring
wanzhong23331 天前
开发日记8-优化接口使其更规范
java·后端·springboot
羊小猪~~1 天前
【QT】--文件操作
前端·数据库·c++·后端·qt·qt6.3