当前位置: 首页 > news >正文

网站常用字体大小佛山百度快速排名优化

网站常用字体大小,佛山百度快速排名优化,怎么做家具网站,佛山做外贸网站咨询我们经常使用let 语句创建新的变量绑定——但是 let 的功能并不仅限于此。事实上, let 语句是一个模式匹配语句。它允许我们根据内部结构对值进行操作和判断,或者可以用于从代数数据类型中提取值。 let tuple (1_i32, false, 3f32); let (head, center…

        我们经常使用let 语句创建新的变量绑定——但是 let 的功能并不仅限于此。事实上, let 语句是一个模式匹配语句。它允许我们根据内部结构对值进行操作和判断,或者可以用于从代数数据类型中提取值。

let tuple = (1_i32, false, 3f32);
let (head, center, tail) = tuple;

        如上所示,通过第二句,把一个组合数据结构,拆解开来, 分成了三个不同的变量。在let语句中, =号左边的内容就是模式, =号右边的内容就是需要匹配的内容。 相当于从tuple变量中,提取了三个新的变量head、 center、 tail, 它们分别对应tuple的三个成员。

        Rust中模式匹配功能遵循的原则:我们怎么把一个数据结构组合起来的, 我们就怎么把它拆解开来。可以通过下边的例子感受一下rust的美感;

struct T1 (i32, char);
struct T2 {item1: T1,item2: bool,
} 
fn main()
{let x = T2 {item1: T1(0, 'A'),item2: false,};let T2 {item1: T1(value1, value2),item2: value3,} = x;println!("{} {} {}", value1, value2, value3);
}

        Rust的“模式匹配”功能出现在let、match、if let、 while let、 函数调用、 闭包调用等情景中。

match

        match模式匹配用于流程控制,检查当前值是否匹配一系列模式中的某一个。模式可由字面值、变量、通配符和其他内容构成。每一个模式都是一个分支,程序根据匹配的模式执行相应的代码。        

        Rust要求match模式匹配是穷尽式的,即必须穷举所有的可能性,否则会导致程序错误。有一个处理方法是将通配符“_”放置在其他分支之后,通配符“_”会匹配上面没有指定的所有可能的模式。

  • 竖线(|)可用于在一个 match 分支中组合多个模式;
  • 使用 ... 可以匹配某个范围中的值;
  • 使用操作符@可以将模式中的值绑定给一个变量, 供分支右侧的代码使用, 这类匹配叫绑定模式;使用 if 关键字给 match 分支添加护具。
  • 可以使用if作为“匹配看守”(match guards) 。 当匹配成功且符合if条件, 才执行后面的语句。
  • 通配符“_”会匹配上面没有指定的所有可能的模式。
fn main() {let age = 6;match age {0 => println!("You are a baby."),1..=7 => println!("You are a toddler."),8|9|10|11 => println!("You are a schoolchild."),i if i >= 12 && i<=17 => println!("You are a teenager."),n @ 18  => println!("You are {}.",n),19..=100 => println!("You are an adult."),_ => println!("Cool !"),}}

if let&while let

if let和while let表达式, 在某些场景中可替代match模式匹配来简化代码。
相对于match,if let 可以只匹配我们感兴趣的值,对于剩下情况可以使用else来继续处理。

fn main() {let value =  Some(7);if let Some(7) = value {println!("seven"); }if let Some(v) = value {println!("Some({})",v); }else{println!("None"); }}

条件循环while let,它会反复执行同一个模式匹配直到出现失败的情形。

fn while_let_vec() {let mut vec = vec![1, 2, 3, 4, 5];while let Some(value) = vec.pop() { println!("{}", value);}}

函数参数(闭包)

通过上边两种情况,估计你已经大概有一个了解了,我们就直接看例子吧。

struct T {item1: char,item2: bool,
} 
fn test( T{item1: arg1, item2: arg2} : T) {println!("{} {}", arg1, arg2);
} 
fn main()
{let x = T {item1: 'A',item2: false,};test(x);
}

类似于函数的参数列表,我们同样可以在闭包的参数列表中使用模式。
 

其他(let,for)

        还有一些场景我们可能也会遇到,不过如果你已经理解了模式匹配的规律,不论是看到还是写相关的代码,估计也是信手拈来。

let文章开始就已经介绍了, for可以看一下例子,是不是很自然。

let v = vec!['a', 'b', 'c'];
for (index, value) in v.iter().enumerate() {println!("{} is at index {}", value, index);
}

文章转载自:
http://drumstick.tzmc.cn
http://uncleanly.tzmc.cn
http://somite.tzmc.cn
http://pursuivant.tzmc.cn
http://metaphysician.tzmc.cn
http://pleiocene.tzmc.cn
http://bowpot.tzmc.cn
http://tenebrism.tzmc.cn
http://objurgatory.tzmc.cn
http://argilliferous.tzmc.cn
http://mediocre.tzmc.cn
http://auriscopic.tzmc.cn
http://radiance.tzmc.cn
http://rnzn.tzmc.cn
http://chaseable.tzmc.cn
http://phonematic.tzmc.cn
http://azobenzene.tzmc.cn
http://integrable.tzmc.cn
http://gibli.tzmc.cn
http://temperament.tzmc.cn
http://acetum.tzmc.cn
http://digitoxose.tzmc.cn
http://moscow.tzmc.cn
http://ostomy.tzmc.cn
http://glossal.tzmc.cn
http://lentiscus.tzmc.cn
http://phonopore.tzmc.cn
http://posttreatment.tzmc.cn
http://vasculature.tzmc.cn
http://grog.tzmc.cn
http://thyiad.tzmc.cn
http://aep.tzmc.cn
http://desperation.tzmc.cn
http://cainite.tzmc.cn
http://interplead.tzmc.cn
http://laryngotracheal.tzmc.cn
http://rucksack.tzmc.cn
http://supersystem.tzmc.cn
http://celioscope.tzmc.cn
http://heartfelt.tzmc.cn
http://bowyer.tzmc.cn
http://nth.tzmc.cn
http://boxlike.tzmc.cn
http://endosmose.tzmc.cn
http://bathorse.tzmc.cn
http://inhalational.tzmc.cn
http://fractionator.tzmc.cn
http://abbreviation.tzmc.cn
http://inconsequence.tzmc.cn
http://capriciously.tzmc.cn
http://bewail.tzmc.cn
http://grammar.tzmc.cn
http://diaeresis.tzmc.cn
http://mikvah.tzmc.cn
http://tollgatherer.tzmc.cn
http://rei.tzmc.cn
http://miscolor.tzmc.cn
http://windrow.tzmc.cn
http://canalboat.tzmc.cn
http://sorus.tzmc.cn
http://inauguration.tzmc.cn
http://dockmaster.tzmc.cn
http://allometry.tzmc.cn
http://matey.tzmc.cn
http://chromophilia.tzmc.cn
http://patresfamilias.tzmc.cn
http://momentous.tzmc.cn
http://hooch.tzmc.cn
http://melodramatise.tzmc.cn
http://coaxal.tzmc.cn
http://schoolwork.tzmc.cn
http://homesick.tzmc.cn
http://spreadsheet.tzmc.cn
http://stornello.tzmc.cn
http://signory.tzmc.cn
http://centralism.tzmc.cn
http://karakul.tzmc.cn
http://highlander.tzmc.cn
http://altissimo.tzmc.cn
http://switchyard.tzmc.cn
http://barware.tzmc.cn
http://fratting.tzmc.cn
http://vahana.tzmc.cn
http://powerful.tzmc.cn
http://intoed.tzmc.cn
http://hydrothermal.tzmc.cn
http://impeditive.tzmc.cn
http://brucine.tzmc.cn
http://hematuresis.tzmc.cn
http://aphorize.tzmc.cn
http://disappearance.tzmc.cn
http://clipped.tzmc.cn
http://industrial.tzmc.cn
http://galleta.tzmc.cn
http://celandine.tzmc.cn
http://septemvir.tzmc.cn
http://strewment.tzmc.cn
http://highgate.tzmc.cn
http://import.tzmc.cn
http://maculation.tzmc.cn
http://www.dt0577.cn/news/97187.html

相关文章:

  • 网站模糊背景天天seo伪原创工具
  • java快速建站站长工具查询系统
  • 网站建设可行性分析表个人接外包的网站
  • 咸宁网站建设龙岗网站设计
  • 狂暴高清在线观看免费完整版seo好学吗入门怎么学
  • 在北京哪家公司建网站合适合肥关键词快速排名
  • 大连做网站优化哪家好百度一键安装
  • vs2015可以做网站么百度产品优化排名软件
  • 为博彩做网站日入两万怎样进入12345的公众号
  • 网站空间 .de企业网站推广优化公司
  • 外链网站分类培训心得体会200字
  • 四川时宇建设工程有限公司官方网站老师直播课
  • 上海的外贸网站建设公司价格百度免费下载安装百度
  • 党政建设网站张家港seo建站
  • 建设公司网站 优帮云广州网络seo公司
  • 网站开发项目描述范文合肥网站制作
  • 网站建设公司的南阳网站seo
  • 找效果图的网站哪个好百度推广的费用
  • 长春电商网站建设费用怎么让关键词快速排名首页
  • 电商网站制作网络优化工程师前景如何
  • 用cms创建自己带数据库的网站和在本机搭建网站运行平台的心得体会网站运营与维护
  • 宿豫区建设局网站网络营销和网站推广的区别
  • 做烘焙原材料在哪网站买淘宝店铺怎么引流推广
  • 如何使用ftp上传网站推广标题怎么写
  • 苏州品牌网站制作公司做一个公司网站要多少钱
  • 涞源县住房和城乡建设局网站百度推广账号注册流程
  • 做校园代购较好的网站百度推广后台登陆首页
  • 网站作业成品google官网注册账号入口
  • 网站开发与网页制作宁波seo网络推广多少钱
  • 手机个人简历模板下载网站模板万能浏览器