专业的编程技术博客社区

网站首页 > 博客文章 正文

Rust编程语言里的过程宏macro(rust怎么设置宏)

baijin 2024-09-11 00:55:24 博客文章 5 ℃ 0 评论

上次我们说的宏

是可以和使用宏的代码在一起

甚至在同一个包里


我们还可以定义编译时运行的过程宏


过程宏必须定义在

proc-macro类型的crate里

在cargo文件里有如下配置即可

[lib]

proc-macro = true


具体用法一

用函数式宏指令proc_macro

来装饰一个公开方法

接收一个tokenstream的参数

返回一个tokenstream

函数体里定义要编译时内联的代码

作为返回结果


应用这个宏的时候

先use并调用这个宏

然后就可以调用宏里定义的逻辑了

类似声明式的宏的用法

它们区别在定义的方式不同

声明式的宏用match处理逻辑


用法二

用proc_macro_derive指令

附带一个要被派生的类型名

和一个可选的属性

来装饰一个公开函数

就完成了一个可派生的宏定义


应用这个宏的时候

先use被派生的类型名

再拿它去装饰一个特性

可选属性可用来装饰字段

然后就可以调用宏里定义的逻辑了


用法三

用proc_macro_attrbute

来装饰参数为tokenstream类型的

属性和被装饰对象的公开函数

应用的时候

在被应用的方法等对象上用这个方法名作为装饰指令使用


以后的学习中将涉及到具体用法

欢迎交流

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表