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

宏(Macros) vs 方法(Methods)

区别 方法(Methods) 宏(Macros)
定义方式 impl 块中定义,绑定到具体类型。 通过 macro_rules! 或过程宏定义,生成代码。
调用时机 运行时执行逻辑(如计算数据)。 编译时展开为具体代码(如生成重复逻辑)。
作用对象 操作实例数据(如结构体、枚举的字段)。 操作代码片段(元编程),可生成任意代码。
参数 固定参数数量和类型。 支持可变参数和模式匹配(如 sum!(1, 2, 3))。
错误处理 错误可能在运行时出现。 错误在编译时(如宏展开失败)直接报错。
适用场景 封装类型行为(如计算、修改数据)。 生成代码、扩展语法(如 println!)、编译时计算。
相关推荐
Oneslide3 小时前
Ubuntu 26.04 完整安装 Fcitx5 中文拼音输入法指南(适配默认Wayland)
后端
huangdong_3 小时前
电商平台图片URL原图转换技术深度解析:从缩略图到高清原图的完整方案
java·后端·spring
掘金码甲哥4 小时前
3min手搓一个帮助文档站,很合理吧!
后端
ServBay8 小时前
别再用初级写法写Rust了,8个写法你值得拥有
后端·rust
jingling5558 小时前
go | 环境安装和快速入门
开发语言·后端·golang
Darren2459 小时前
流程步骤模板 - @StepStatus 注解方案
后端
小闹5499 小时前
Claude Code 给自己接了一部飞书,从此不用守在工位等它
后端·claude
浮游本尊9 小时前
Java学习第41天 - 复杂查询、多表关联、索引优化与慢 SQL 调优
后端
llz_1129 小时前
web-第五次课后作业
前端·后端·http