范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Rust学习笔记(五十三)模式(匹配)及其用法和可辩驳性

  模式
  模式是Rust中一种特殊的语法,用于匹配复杂和简单类型的结构。将模式与匹配表达式和其它构造结合使用,可以更好地控制程序的控制流。 模式由以下元素(的一些组合)组成: 字面值 解构的数组、枚举、结构体和元组 变量 通配符 占位符
  想要使用模式,需要将其与某个值进行比较,如果模式匹配,就可以在代码中使用这个值的相应部分。 match的分支match VALUE { 	PATTERN => EXPRESSION,     PATTERN => EXPRESSION,     PATTERN => EXPRESSION, }
  match表达式的要求:详尽(包含所有可能性) 一个特殊的模式_(下划线): 它会匹配任意东西 不会绑定到变量 通常用于match的最后一个分支,或用于忽略某些值 条件if let表达式
  if let表达式主要是作为一种简短的方式来等价的代替只有一个匹配项的match。if let可选的可以拥有else,包括: else if else if let
  但是if let不会检查穷尽性。例: fn main() {     let favorite_color: Option<&str> = None;     let is_tuesday = false;     let age: Result = "34".parse();      if let Some(color) = favorite_color {         println!("Using your favorite color, {}, as the background", color);     } else if is_tuesday {         println!("Tuesday is green day!");     } else if let Ok(age) = age {         if age > 30 {             println!("Using purple as the background color");         } else {             println!("Using orange as the background color");         }     } else {         println!("Using blue as the background color");     } }
  运行以上代码,因为favorite_color是None,所以与if let不匹配;is_tuesday是false,也不能进入else if;age是Ok(T),所以能够匹配,并且把age的值34给Ok中的变量age,最后34 > 30,所以输出Using purple as the background color。 while let条件循环
  只要模式继续满足匹配的条件,那它允许while循环一直允许。例: fn main() {     let mut stack = Vec::new();      stack.push(1);     stack.push(2);     stack.push(3);      while let Some(top) = stack.pop() {         println!("{}", top);     } }
  运行以上代码,只要stack中还能pop出值,循环可以一直进行。 for循环
  for循环是Rust中最常见的循环。在for循环中,模式就是紧随着for关键字后的值,例: fn main() {     let v = vec!["a", "b", "c"];      for (index, value) in v.iter().enumerate() {         println!("{} is at index {}", value, index);     } } let语句
  let语句也是模式,let PATTERN = EXPRESSION,例: fn main() {     let x = 8;//x 是一个代表 "将匹配到的值绑定到变量 x" 的模式。                   //同时因为名称 x 是整个模式,这个模式实际上等于                    //"将任何值绑定到变量 x,不管值是什么"。      let (x, y, z) = (1, 2, 3);//模式解构元组      //let (x, y) = (1, 2, 3);不匹配,编译报错 } 函数参数
  函数参数也可以是模式,例: fn print_coordinates(&(x, y): &(i32, i32)) {     println!("Current location: ({}, {})", x, y); }  fn main() {     let point = (3, 5);     print_coordinates(&point); } 可辩驳性:模式是否会无法匹配
  模式的两种形式: 可辨驳的(对于某些可能的值,无法进行匹配的模式)例如if let Some(x) = a_value,当右边是None是就无法匹配 不可辩驳的(能匹配任何可能传递的值的模式,不可能失败的,怎么都会成功)例如let x = 5;
  函数参数、let语句、for循环只接受不可辩驳的模式。而if let和while let接受可辨驳和不可辩驳的模式。例: fn main() {     let x = Some(5);     let Some(a) = x;//let只接受不可辩驳,但x是Option类型,可能是Some,也有可能是None导致不匹配。所以报错     if let Some(a) = x {//改为if let就没有错误      } }

工商精英磨剑清华工商精英磨剑清华朱耿洲博士在深圳清华国际研究生院授课实录7月1314日,深圳清华国际研究生院高级工商管理精品课程研修班E1801班近百名同学齐聚一堂,聆听由中国资本策划研究院院长朱真我X7Pro至尊版评测,2500元内唯一曲面屏5G手机香不香?去年9月,真我X7Pro凭借超高颜值和性价比,一战成名,赢得了市场和行业的认可。进入2021年,realme持续发力,在1月推出国潮锦鲤手机V15之后,仅在刚刚过去的3月份,便连发百公里不充电的电动车爱玛A500实测,这续航大家觉得如何因为轻便灵活,电动车在我们短距离日常出行中扮演者重要角色,身边也有很多小伙伴儿为了躲避堵车和挤公交的苦恼,选择电动车作为上下班的主要通勤工具。但是,随着城镇化加速,城市的边界不断扩创新传感技术可清除甲醛,戴森再发全新空气净化风扇系列如今,全球数以百万的人们待在家里的时间越来越多。全新戴森DysonPurifierFormaldehyde空气净化风扇系列采用固态甲醛传感技术,以及首次实现整机H13级别密封设计,能拍星星的手机努比亚Z30Pro发布,2亿像素手持也能拍星轨5月20日,努比亚星影相随主题新品发布会隆重举办,Z系列最新一代影像旗舰努比亚Z30Pro正式与大家见面。时隔651天,在广大用户的期盼与等待中,Z30Pro代表努比亚Z系列影像旗金融精英如何用尽职调查选老婆用估值法选老公?PARTONE从VC角度出发选老婆应该如何进行尽职调查?一前言男人从一出生开始,就走上了一条创业的道路,这个创业本质上就是经营男人自己,也包括经营自己的家庭工作和生活。而当创业发展中年金融男日子总是像从指尖流过的细沙,在不经意间悄然滑落。它自由生长,而他无力抵抗。蓦然回首,已是人到中年。岁月虽然是捉摸不到的东西,但它在慢慢地改变着我们。通过悉心观察深入研究,我总结了一欲融资先融智朱耿洲博士在清华深圳国际研究生院金融班讲学五月的深圳,气候怡人。1516日,中国资本策划研究院(CCP)院长朱耿洲博士应邀为清华深圳国际研究生院金融43期班的学员,带来企业融资方法与渠道)经典实战课程。该课程系统全面教授适金融百科实战智慧化解经营盲点风险朱耿洲博士互联网类金融民间融资策划36计课程深圳开讲当前我国互联网金融的现状及对策是什么?银保监会新认定的类金融行业经营规则有哪些?如何规避高利贷?民间金融如何阳光化大发展?5月2新一代折叠屏手机亮相三星GalaxyZFold35G再秀引领行业实力全面屏滑盖屏环幕屏环绕屏智能手机行业经过数年对手机形态突破的探索,未来手机形态究竟应该往哪个方向发展?大家终于有了一个共识,那就是兼顾便携性使用性,并实现手机价值突破的智能手机终极再添新成员!创业融资实战基础18计获第16项知识版权日前,国家版权局正式通知著名融资策划实战专家中国资本策划研究院院长朱耿洲博士最新力作创业融资基础18计课程正式获得国家版权登记,登记号(国作登字2021A00134629)。这是朱
3000价位最香手机?发布4天后,媒体都怎么评价一加9RT10月13日,一加9RT正式发布,作为一加又一款旗舰机型受到了许多的关注。一加9RT作为一款价格在三千出头,却拥有骁龙888旗舰性能顶级散热65T超级闪充IMX766旗舰主摄等多方三星要断OPPO后路?将1。5亿美金收购相机技术公司Corephotonics以色列媒体Globe刊文称,三星和以色列相机科技公司Corephotonics的收购谈判已经接近尾声,该收购交易金额为1。5亿1。6亿美元。大家对Corephotonics公司可能苹果全家桶好用配件汇总2021年初篇前言作为一个重度Mac用户,目前主力生产力都围绕着苹果生态圈打造。2020年中,参加了UniversalAppQuickStart项目的开发者,拿到了首批采用ARM架构的MacDT苹果牌抛光布,值的买吗?今年的苹果秋季发布会大家都说它猛。不错,也确实挺猛的自研M1芯片升级成了性能更强悍的M1PROM1MAX芯片,还有新AirPods3,新MacBookPro等等。但今天我们不谈这些11ampampgt2EDONE908B多功能悬浮落地扇体验虽然对于2020年的中国家庭,空调已经成为标配,但是各家厂商依然在推出各种样式的电风扇,原因就是电风扇实在是不可替代,不只是情怀,更因为总会有空调吹不到的地方。特别是在初夏立秋的时ROG幻15圈粉潮玩用户,锐龙5000系列彰显实力随着互联网时代飞速发展,大家对满足日常工作生产与游戏娱乐的笔记本要求也越来越高。但想要兼顾工作生产与游戏大作的产品配置要求都不简单,只有拥有强劲性能表现以及出色屏幕体验的PC才能提这些功能得到外媒一致好评,FindX3不愧是顶级旗舰最近网上关于OPPOFindX3系列的关注有点高,不仅是在国内有着不错的反响,甚至在国外也收获了很不错的声音。近日,就有国外数码媒体在油管上对OPPOFindX3系列做出了点评,它乏善可陈苹果9月发布会全汇总前言一年一度苹果发布会如期录播成功,作为果粉虽然早从供应链端知道今年的产品阵容,但还是熬夜等待苹果揭晓后市场的应声下跌,并捕捉到了一点点做空的蝇头小利。趁着无聊的深夜再给大家总结下国产手机引发用户排队抢购,2021年买手机还用这样排队?大家都知道,一加9系列自3月24日下午14点发布后,当天下午17点准时开启了预售,销量十分可观,因此也收获了不错的用户口碑。而3月27日。一加9系列Popup活动也如期在全国16个汇总用户们心声均价5000的国产手机,为何毫不犹豫就买了一加9系列自3与24日发布以来,终于在3月30日迎来首销,带来十分亮眼的成绩全网首销10秒钟就达到了3亿元的销售额,5分钟达到了5亿元。按5000均价来算,也就是说平均每三秒售出2安卓机皇绝不只是噱头,小米超大杯将首发搭载三星GN2今早,小米官微官宣了一则关于小米11超大杯的消息,放出的海报上铺满了各式各样的单反相机,拐点之战四个大字异常醒目,这也引发了众多网友的思考,很多人认为这是小米11超大杯要与单反相机