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

宏(Macros) vs 方法(Methods)

区别 方法(Methods) 宏(Macros)
定义方式 impl 块中定义,绑定到具体类型。 通过 macro_rules! 或过程宏定义,生成代码。
调用时机 运行时执行逻辑(如计算数据)。 编译时展开为具体代码(如生成重复逻辑)。
作用对象 操作实例数据(如结构体、枚举的字段)。 操作代码片段(元编程),可生成任意代码。
参数 固定参数数量和类型。 支持可变参数和模式匹配(如 sum!(1, 2, 3))。
错误处理 错误可能在运行时出现。 错误在编译时(如宏展开失败)直接报错。
适用场景 封装类型行为(如计算、修改数据)。 生成代码、扩展语法(如 println!)、编译时计算。
相关推荐
有梦想的攻城狮3 分钟前
spring中的@Configuration注解详解
java·后端·spring·configuration·配置类
言之。8 分钟前
Go语言中的错误处理
开发语言·后端·golang
优雅的落幕3 小时前
【SpringBoot】基于mybatisPlus的博客管理系统(2)
java·spring boot·后端
robch4 小时前
golang接口和具体实现之间的类型转换
开发语言·后端·golang
柯南二号4 小时前
Go 写一个简单的Get和Post请求服务
开发语言·后端·golang
我的golang之路果然有问题6 小时前
快速了解Go+微服务(概念和一个例子)
开发语言·笔记·后端·学习·微服务·golang
heroboyluck6 小时前
rust 全栈应用框架dioxus
前端·rust·dioxus
wuyunhang1234566 小时前
Spring AOP概念及其实现
java·后端·spring
angushine7 小时前
SpringBoot多工程项目微服务install时如何不安装到本地仓库
spring boot·后端·微服务
王中阳Go8 小时前
最新字节跳动运维云原生面经分享
运维·后端·云原生·面试·golang