「Rust笔记」Rust之自定义宏写法
宏的分类
1)宏按照来源分类
声明宏(Declarative Macro)和过程宏(Procedural Macro)。
前者指的是用某种语法直接声明出的宏。
后者是对应直接生成抽象语法树的过程的宏。
2)宏按照使用方式分类
属性宏:给声明添加属性的宏,例如 #[derive(Debug)] 和 #[test]。
调用宏:像函数一样的宏,例如 println!。
3)来源分类与使用分类直接关系
明宏都是用 macro_rules! 声明出的,它声明出的一定是调用宏。过程宏可以产生属性宏,也可以产生调用宏,也就是说,属性宏都是过程宏,调用宏可能是声明宏或者过程宏。
宏的定义
使用 macro_rules!进行自定义
常用的println()宏的大概形式:
macro_rules! println {() => (println!("\n"));($fmt: expr) => (print!(concat!($fmt, "\n")));($fmt: expr, $($(arg:tt)*) =>(print!(concat!($fmt, "\n"), $($arg)*));
}
1) 组成部分
有三个部分,输入分别是 ()、($fmt:ex
「Rust笔记」Rust之自定义宏写法相关推荐
- 「rust笔记」rust之文件读写操作
前言 Unix 哲学: "一切皆文件". 它描述了 Unix 的特性–所有输入/输出资源, 如文档, 目录, 硬盘驱动器, 调制解调器, 键盘, 打印机甚至一些进程间和网络通信, ...
- 「Rust笔记」Rust之vector排序总结
1.前言 数据排序经常会使用到,很多语言都自带排序方法,Rust也不例外.这里详细介绍Rust数组排序的方法. 2.vector整数排序 这里通过 vec::sort 对一个整数 Vector 进行排 ...
- 「划线高亮」和「插入笔记」—— 不止是前端知识点
如今前端领域:serverless,low code,全栈化等概念遍布漫天.开发者们热衷于讨论「如何把前端格局做大」,「如何将高高在上的概念落地」.此时,你有没有感受到「还不知道发展方向到底是什么,就 ...
- 「学习笔记」品优购项目-上(页面公共部分 )
「学习笔记」品优购项目-上 品优购项目-上 目标 品优购项目规划 网站制作流程 品优购项目介绍 品优购项目的学习目的 开发工具以及技术栈 开发工具 技术栈 品优购项目搭建工作 创建的文件夹如下(称为项 ...
- 「学习笔记」移动Web开发之rem适配布局10
「学习笔记」移动Web开发之rem适配布局10 一.rem单位 1.1 rem 单位 二.媒体查询 2.1 什么是媒体查询 2.2 语法规范 2.2.1 mediatype 查询类型 2.2.2 关键 ...
- 「学习笔记」HTML5CSS3提高6(上)
「学习笔记」HTML5&CSS3提高6(上) HTML5新特性 概述 语义化标签 (★★) 多媒体标签 视频标签- video(★★★) 基本使用 兼容写法 video 常用属性 音频标签- ...
- 「学习笔记」黑马面面布局开发
「学习笔记」黑马面面布局开发 黑马面面布局开发 一.目的 1.1 技术方案 1.2 代码规范 1.2 目录规范 二.流程开发 2.1 蓝湖/摹客协作平台 2.2 适配方案 2.3 初始化文件 2.4 ...
- 「学习笔记」多项式的蛇皮操作
文章目录 「学习笔记」多项式的蛇皮操作 前置知识 趋近 自然常数 对数 逆元 导函数 牛顿迭代与泰勒公式 不定积分与定积分 多项式乘法 多项式求逆元 多项式除法/取模 多项式牛顿迭代法 多项式开根 「 ...
- 「学习笔记」移动Web开发之flex布局9
「学习笔记」移动Web开发之flex布局9 一.flex布局体验 1.1 传统布局与flex布局 1.2 初体验 二.flex布局原理 2.1 布局原理 三.flex布局父项常见属性 3.1 常见父项 ...
最新文章
- 为什么都说 Go 是大厂通行证!
- Swift3.0语言教程获取字符串长度
- 企业数字化转型必看!建立企业级数据分析,必须重点修炼这4种能力
- C++多态,虚函数,纯虚函数
- php post请求跳转,学习猿地-php如何实现post跳转
- python遍历数组冒泡排序法_十种排序七种搜索算法的Python实现——气泡排序,十大,七大,查找,python,冒泡排序,bubblesort...
- mysql 端口time_wait_linux上大量tcp端口处于TIME_WAIT的问题
- java jaxb xml
- SpringBoot集成Actuator监控管理
- android 7.0 自启管理,一款不错的android6.0、7.0权限管理器推荐
- 教你如何计算腰围~~
- RAID一个硬盘FAIL。
- C语言实现电脑关机程序
- 互联网常见域名后缀含义
- 联想启天电脑教室黑屏硬盘保护系统EDU8.0.2.19修复手记
- MySQL技能树学习总结
- FirefoxOS 系统进程初步分析 底层系统继承自 android
- PYTHON-小白入门-学习顺序
- Comparator自定义顺序
- 什么是好的大学生活?
热门文章
- MRPII/ERP实施和应用十大忠告(转)
- shell 脚本如何判断文件是否存在
- cctalk录屏去水印翻录过检测教程
- python列表和集合的异同_Python中的list与tuple集合区别解析
- Reac项目搭建,学习React hooks
- excel中从两列数据中找到相同的数据,并用颜色填充单元格
- Initializing from file failed
- Pylon SDK的C语言使用流程详解及代码示例
- Java实现第九届蓝桥杯等腰三角形
- 肺活量测试软件原理,学校里测肺活量的机器为什么有孔?有孔怎么测得准,是什么原理?...