当前位置: 首页 > news >正文

rust常用的宏使用记录(九)

matches! 宏使用


matches!Rust 标准库中一个非常有用的宏,它允许你方便地匹配一个表达式的结果是否符合某个模式。它的基本用法如下:matches!(expression, pattern)
这个宏返回一个布尔值,如果 expression 匹配 pattern,则返回 true,否则返回 false。下面是一些常见的用法示例:基本用法let value = Some(3);
assert!(matches!(value, Some(3)));
匹配枚举enum MyEnum {Foo,Bar(i32),
}let e = MyEnum::Bar(10);
assert!(matches!(e, MyEnum::Bar(10)));
匹配并忽略值
使用 _ 忽略模式中的值:let value = Some(42);
assert!(matches!(value, Some(_)));
多模式匹配
使用 | 运算符进行多模式匹配:enum MyEnum {Foo,Bar,Baz,
}let e = MyEnum::Bar;
assert!(matches!(e, MyEnum::Foo | MyEnum::Bar));
结合守卫(guard)
结合条件表达式使用:let value = Some(4);
assert!(matches!(value, Some(x) if x > 3));
结合 OptionResult
rust
复制代码
let opt = Some(10);
assert!(matches!(opt, Some(x) if x > 5));let res: Result<i32, &str> = Ok(2);
assert!(matches!(res, Ok(2)));
assert!(matches!(res, Err(_)));
结合结构体和元组struct Point {x: i32,y: i32,
}let p = Point { x: 1, y: 2 };
assert!(matches!(p, Point { x: 1, y: 2 }));
结合复杂模式enum MyEnum {Foo(i32, i32),Bar { x: i32, y: i32 },
}let e = MyEnum::Foo(1, 2);
assert!(matches!(e, MyEnum::Foo(1, 2)));let e = MyEnum::Bar { x: 3, y: 4 };
assert!(matches!(e, MyEnum::Bar { x: 3, y: 4 }));
结合引用let value = &Some(5);
assert!(matches!(value, &Some(5)));
这些示例展示了 matches! 宏的多种用法,涵盖了基本匹配、忽略值、多模式匹配、结合守卫、结构体匹配和复杂模式匹配等场景。matches! 宏的灵活性使得它在各种条件检查和模式匹配中都非常有用。
http://www.lryc.cn/news/414543.html

相关文章:

  • 【Python机器学习】支持向量机——手写数字识别问题
  • 学习笔记-Cookie、Session、JWT
  • 题海战术,面试必胜秘诀
  • 设计模式详解(十九)——命令模式
  • 实战:MySQL数据同步神器之Canal
  • 5.6软件工程-运维
  • 在JavaScript中如何确保构造函数只被new调用
  • 【数据结构算法经典题目刨析(c语言)】反转链表(图文详解)
  • 机器学习之争:Python vs R,谁更胜一筹?
  • Vulnhub靶机:JANGOW_ 1.0.1
  • Python脚本实现USB自动复制文件
  • 【C++学习第19天】最小生成树(对应无向图)
  • 第一个 Flask 项目
  • 利用 Angular 发挥环境的力量
  • Vue3+TypeScript+printjs 实现标签批量打印功能
  • 微信文件如何直接打印及打印功能在哪里设置?
  • dataX -20240804-master分支
  • 【网络】传输层
  • 学生管理系统之更新和删除、筛选
  • 教您一键批量下载拼多多批发图片信息,节省时间
  • 基于微信小程序的微课堂笔记的设计与实现(源码+论文+部署讲解等)
  • 去噪扩散恢复模型
  • Stable Diffusion 官方模型V1.5版本下载
  • 【算法】双指针-OJ题详解1
  • 29 两个任务切换(1)
  • 正则表达式概述
  • 【C语言】Top K问题【建小堆】
  • Rust 程序设计语言学习——并发编程
  • 联邦学习研究综述【联邦学习】
  • 深入理解Python中的列表推导式