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

Rust学习笔记(十三)match(模式匹配)

  match在Rust中是一个强大的控制流运算符。match允许一个值与一系列模式进行匹配,并执行成功匹配上的模式对应的代码。模式可以是字面值、变量名、通配符... 例: enum Coin {     Penny,     Nickel,     Dime,     Quarter, }  fn value_in_cents(coin: Coin) -> u8{     match coin {         Coin::Penny => 1,//只有一行要执行的代码时可省略`{}`,与下一个模式之间用`,`隔开         Coin::Nickel => 5,         Coin::Dime => {             println!("{}", 10);             10         }//在Rust中逗号在`{}`后以及最后一个时都可省略         Coin::Quarter => {             println!("{}", 25);             25         }     } }  fn main() {     let value = value_in_cents(Coin::Nickel);     println!("{}", value); } 绑定值的模式
  匹配的分支可以是绑定到被匹配对象的部分值,因此可以从枚举的变体中提取值。例: #[derive(Debug)] enum UsState {     Alabama,     Alaska, }  enum Coin {     Penny,     Nickel,     Dime,     Quarter(UsState), }  fn value_in_cents(coin: Coin) -> u8 {     match coin {         Coin::Penny => 1, //只有一行要执行的代码时可省略`{}`,与下一个模式之间用`,`隔开         Coin::Nickel => 5,         Coin::Dime => {             println!("{}", 10);             10         } //在Rust中逗号在`{}`后以及最后一个时都可省略         Coin::Quarter(state) => {//绑定值             println!("{:#?}", state);             25         }     } }  fn main() {     let value = value_in_cents(Coin::Quarter(UsState::Alaska));     println!("{}", value); }  匹配Option
  例: //若传入的Option中有值则值+1,无值则返回None fn plus_one(x: Option) -> Option {     match x {         Some(value) => Some(value + 1),         None => None,     } }  fn main() {     let value = Some(666);     let r = plus_one(value);      let value1 = None;     let r1 = plus_one(value1);      println!("{:#?}, {:#?}", r, r1); } match必须穷举所有可能
  对上一个例子中的plus_one函数做以下修改: fn plus_one(x: Option) -> Option {     match x {         Some(value) => Some(value + 1),     } }
  编译器会给出以下错误提示: error[E0004]: non-exhaustive patterns: `None` not covered    --> srcmain.rs:3:11     | 3   |     match x {     |           ^ pattern `None` not covered
  所以使用match时必须覆盖所有可能性,不然无法成功编译。若match分支较多,我们不想一一匹配处理,可使用_通配符来代替剩下的还没有列出的值。例: fn main() {     let value = 6u8;     match value {         1 => println!("one"),         2 => println!("two"),         3 => println!("three"),         4 => println!("four"),         5 => println!("five"),         _ => (),     }//value是u8类型(0-255),但是我们只想处理1-5,      //所以除了1-5都会进入通配符_分支 } if let
  如果我们只想处理一种情况,可使用if let语法简化我们的代码。例: fn main() {     let value = Some(6u8);     if let Some(6) = value {         println!("{:#?}", value);     } }
  此外还可搭配else、else if使用,例: fn main() {     let value = Some(7u8);     if let Some(6) = value {         println!("6 => {:#?}", value);     } else if let Some(5) = value {         println!("5 => {:#?}", value);     } else {         println!("_ => {:#?}", value);     } }

2021年社区团购NPS用户体验研究社区团购丨研究报告核心摘要社区团购进入下半场,精细化运营是趋势经过前期粗放式经营,社区团购进入下半场,竞争仍然激烈经过前期拉新引流阶段,团长佣金比例降低,流动性加大。需要通过精细化冬天也能吃到桃子?而且还超甜冬天也能吃到桃子?没错,一条生活馆找来了山东海阳的金秋红蜜桃,只有在秋末冬初才能吃到!当地人都称之为冬桃。它最大的特点就是甜!春季开花入冬才成熟,每一个桃子都在树上足足养了200多轻柔保暖羽绒被,美观舒适冬天必备在床品家族中,羽绒被已经成为了一枝独秀,它以轻便柔软贴身保暖等优势深受人们的宠爱!冬季到了,晚上睡觉可要注意别着凉哦!这时候羽绒被会让你与温暖相伴。有的伙伴会问,这么好的羽绒被是不父亲的青春回来了,vivoX50还原老照片,作为父亲节礼物正合适近日,vivo旗下的vivoX50可谓是雄姿英发,一经开售,它就凭它那最薄的身材简约优雅的外观强大的高清四摄全新的拍摄功能吸引了不少用户。用户的反馈评价也是对其称赞有佳,给了他们意游戏掌机?GPDWIN3使PC游戏变得更加轻松易用译自gamespark。jp定位游戏掌机的超便携式个人电脑GPDWIN3,目前正在Indiegogo开展众筹活动。由于这次我们是从GPD借来的原型机,因此在本文中,我们将告诉您可以曾经的牙膏神教易主,AMD光荣扛起Intel死保的大旗近期,终于有一款AMDR75800U笔记本上市了,看来惠普与AMD的合作很紧密。上市的产品全称是HPProBook455G8,内存从864GB配置都有,但是国内只有832GB版本,国产PC掌机,运行国产游戏原神,超越任天堂塞尔达?GPDWINMax能不能玩原神,这是我最近被问到最多的问题了,原神游戏发布才不久,据说流水已经超过了腾讯某游,这个画风有点类似任天堂塞尔达荒野之息的游戏,居然如此火爆,到是让人意想机器学习领域会成为求职主流吗?机器学习(ML)是人工智能(A。I。)的一个分支学科,是一项复杂的技能。然而,专家预测,对机器学习技能的需求在未来十年内会只增不减。实际上会这样吗?如果是这样,你将如何开始学习机器北美求职指北1B,职业绿卡申请均下滑前三季度H1B,职业绿卡申请均下滑U。S。News发布2022美国最佳大学排名美国高校积极新增数据类研究生专业2021前三季度H1B,职业绿卡申请均下滑美国劳工部下属的外籍劳工证办高薪技能如何影响员工薪资和升职?部分技术人员学习特定的编程语言工具或其他技术,是因为他们对其运行原理感兴趣。而部分人员学习技术,是因为他们认为这些技能可以带来更好的工作机会或更高的薪水。这两种方法其实都可取但如果北美求职指北E周报美国将从11月8日起解除国际旅游禁令美国将从11月8日起解除国际旅游禁令LinkedIn将关闭在中国的社交功能EB2表现不俗EB3大幅倒退美国将对已接种疫苗国际旅客解除旅游禁令路透社最新消息称,10月15日上周五,美
语音外呼机器人,自动外呼系统搭建语音外呼机器人,自动外呼系统搭建受到人工智能高速发展的时代因素影响,许多企业已经陆陆续续开始了以智能代替人力的电销大改革,智能外呼不仅提高了企业的生产力与工作效率,在最大程度上的开PayPalCEO对加密货币的需求远高于预期PayPal首席执行官丹舒尔曼(DanSchulman)透露,用户对该平台上加密货币的需求甚至高于预期。支付巨头PayPal推出了针对比特币和其他加密货币的买卖功能后仅几个月,该平北欧地区的比特币采矿正在变冷随着越来越多的行业需要可再生能源,比特币开采可能会失败。冰岛,瑞典和挪威拥有丰富的可再生能源,它们都是生态友好型比特币采矿的热门地点。但是根据经济时报,这可能会改变。由于日益严峻的骁龙870手机小钢炮一加9R一加9R是一加手机4月份上市的一款3000元旗舰手机。目前京东有6期免息和优惠券活动还是值得入手的。外观一加9R拥有蓝屿黑岛青宇三款选择屏幕6。65英寸,厚8。4毫米质感美首位员工称Coinbase本应通过以太坊上市OlafCarlsonWee说,如果Coinbase在Coinbase上市,其估值将是现在的两倍以上。他对Coinbase股票的理想方案是在DeFi上交易的USDC式ERC20代币Uniswap的周交易量达到创纪录的100亿美元Uniswap是以太坊网络上的顶级去中心化交易所,尽管以太坊区块链的交易费用很高,但人们继续涌向该网络的DeFi平台,为了证明这一点,可以看看Uniswap。根据UniswapAn高盛将向华尔街提供比特币衍生品高盛最近开放了其比特币交易柜台,现在,它正在追寻大的花费者。高盛,一家管理着超过2万亿美元资产的全球投资银行,将开始允许大型投资者有机会对比特币的未来价格进行投注。根据彭博社的报道韩国94将至?真实情况如何?对全球加密市场影响几何韩国是全球最大的单一加密货币市场之一。对于全球性加密货币交易所而言,韩国可能是除大中华地区以外的最大单一散户市场。韩国限定9月24日为交易所注册的截止日期,被中国社区戏称为韩国94SquareCEO多西表示考虑建立比特币挖矿系统萨尔瓦多将比特币作为法定货币数千民众街头纵火游行抗议10月17日,萨尔瓦多首都数千人上街抗议总统颁布比特币合法化等多项政策。当地媒体称,自9月比特币成为该国法定货币以来,社会各界对电销外呼电话机,电脑外呼系统给用户打电话电销外呼电话机,电脑外呼系统给用户打电话电话卡被封,无非两种情况,一是被客户标记,二是高频呼出了。通常来讲,正规行业电话销售,只要遵守销售的基本规则,被投诉的几率是很小,因为我们要印度支付企业Paytm合规的情况下会尝试使用比特币进行公开募股印度支付企业Paytm合规的情况下会尝试使用比特币进行公开募股11月4日消息,印度支付企业Paytm表示如果合规的话,会尝试使用比特币进行公开募股。萨尔瓦多总统宣布将利用该国比特币