The Rust Programming Language - 第18章 模式与模式匹配 - 18.2 Refutability(可反驳性):模式是否会匹配失效

18 模式与模式匹配

模式是Rust中的特殊语法,用来匹配类型中的结构,无论类型复杂与否。模式由以下一些内容组合而成:

字面值\解构的数组、枚举、元组或者结构体\变量\通配符\占位符,这些部分描述了我们需要处理的数据形状。(匹配模式其实可以理解为匹配项,简单理解就是把两个项目拉起来比较,看等不等于,等于的话我们就执行一些代码,不等于的话执行另一些代码。这个点就跟条件语句外加等于号一样,只不过Rust中把它专门做了个匹配模式)

18.2 Refutability(可反驳性):模式是否会匹配失效

模式有两种形式:可反驳的和不可反驳的(refutable & irrefutable)。不可反驳的模式能够匹配任何值,例如

let x = 5;

事实上x可以匹配任何值,所以不会失败,但是如下例子可能会匹配失败,所以是可反驳的

if let Some(x) = a_value

如果变量a_value中值是None而不是Some,那么Some(x)模式不能匹配

依照这个概念,函数、let 语句和for 循环只能接受不可反驳的模式,不然程序就是没有意义了

if let 和 while let 被限制为只接受可反驳的模式;因为它们可以处理匹配失败的情况

尝试在let 中使用可反驳模式

let Some(x) = some_option_value;

let Some(x) = so
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值