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

宏(Macros) vs 方法(Methods)

区别 方法(Methods) 宏(Macros)
定义方式 impl 块中定义,绑定到具体类型。 通过 macro_rules! 或过程宏定义,生成代码。
调用时机 运行时执行逻辑(如计算数据)。 编译时展开为具体代码(如生成重复逻辑)。
作用对象 操作实例数据(如结构体、枚举的字段)。 操作代码片段(元编程),可生成任意代码。
参数 固定参数数量和类型。 支持可变参数和模式匹配(如 sum!(1, 2, 3))。
错误处理 错误可能在运行时出现。 错误在编译时(如宏展开失败)直接报错。
适用场景 封装类型行为(如计算、修改数据)。 生成代码、扩展语法(如 println!)、编译时计算。
相关推荐
码起来呗43 分钟前
基于Spring Boot的乡村拼车小程序的设计与实现-项目分享
spring boot·后端·小程序
我命由我123451 小时前
Java 并发编程 - Delay(Delayed 概述、Delayed 实现、Delayed 使用、Delay 缓存实现、Delayed 延迟获取数据实现)
java·开发语言·后端·缓存·java-ee·intellij-idea·intellij idea
我是天龙_绍2 小时前
java 比对两对象大小 重写 comparator
后端
IT_陈寒2 小时前
Python 3.12新特性实测:10个让你的代码提速30%的隐藏技巧 🚀
前端·人工智能·后端
BingoGo2 小时前
从零开始打造 Laravel 扩展包:开发、测试到发布完整指南
后端·php
9号达人3 小时前
普通公司对账系统的现实困境与解决方案
java·后端·面试
golang学习记3 小时前
Go 1.26 新特性:netip.Prefix.Compare —— 标准化 IP 子网排序能力
后端
花落已飘3 小时前
openEuler容器化实践:从Docker入门到生产部署
后端
Cache技术分享3 小时前
233. Java 集合 - 遍历 Collection 中的元素
前端·后端