rust模式匹配

rust的模式匹配大概有以下几种

let语句

在这里插入图片描述
在这里插入图片描述

if let 语句

代码执行
结果显示

match 语句

参数的语法:

  • | 表示可以并列多个选项
    在这里插入图片描述
    在这里插入图片描述

  • 范围模式,可以使用 … = 列出范围,如1…=10 表示范围【1,10】;如1…10 表示【1,10),该模式for循环支持
    在这里插入图片描述
    在这里插入图片描述

  • 通过@ 绑定变量
    在这里插入图片描述
    在这里插入图片描述

  • 匹配守卫添加额外的条件
    match 分支后面有一个if 条件,它必须满足该条件才选择该分支
    在这里插入图片描述
    在这里插入图片描述

  • 通过_匹配忽略值,类似于 c中switch 语句中的 default
    代码中表现形式

     match v{
         Some(x)=>..
      	_=>..
      }
    
  • while let 语句
    在这里插入图片描述
    在这里插入图片描述

注:模式匹配仅支持char和数值,在 => 后如果执行的语句不止一条时,需要添加{}

Match 语句的exhaustive 特性

Match 语句存在一个 exhaustive 特性,也就是match要求穷尽value的所有pattern

	Fn plus_on(x:Option<32>) -> Option<I32>

当你不想穷尽所有的pattern 时,用_代替其他的pattern,当你只想匹配一种pattern 时,rust 提供了一种语法 if let
,可参考上诉例子。

if let 与 if 的区别

if let 执行后续的表达式的条件是match,而if 执行的条件是true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值