rust常用的宏使用记录(九)
创始人
2024-11-14 18:34:39

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)); 结合 Option 和 Result rust 复制代码 let opt = Some(10); assert!(matches!(opt, Some(x) if x > 5));  let res: Result = 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! 宏的灵活性使得它在各种条件检查和模式匹配中都非常有用。 

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...