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

潍坊网站公司网站编辑工作好做吗

潍坊网站公司,网站编辑工作好做吗,电商网站计划,网站制作新报价一定要牢记Rust是基于表达式的语言&#xff0c;除了声明语句和表达式语句外&#xff0c;其他的都是表达式。所以if也是表达式&#xff0c;它可以被用作右值。 条件控制 if-else。cpp和python得结合。 fn main() {let number 34;if number < 0 {println!("number &l…

一定要牢记Rust是基于表达式的语言,除了声明语句和表达式语句外,其他的都是表达式。所以if也是表达式,它可以被用作右值。

条件控制

if-else。cpp和python得结合。

fn main() {let number = 34;if number < 0 {println!("number < 0");} else if number == 0 {println!("number = 0");} else {println!("number > 0");}
}
fn main() {let cond = true; // 语句和表达式let number = if cond {1} else {4};println!("{}",number);
}

循环控制

for

像python

for i in range(1,100): # python的pass
// Rust
// [l, r)
for i in 1..10 { // l..r 默认为 [l, r)println!("{}",i);
}// [l, r]
for i in 1..=10 { // 加一个等号表示 左闭 右闭println!("{}",i);
}

遍历数组:

fn main() {let a = [1,2,3,4,5];for i in a.iter() {println!("{}",i);}
}// c风格
fn main() {let a = [1,2,3,4,5];let n = a.len();for i in 0..n {println!("{}",a[i]);}
}fn main() {let a = [1,2,4];// 切片for i in a[..].iter() {pass}// 遍历字符串let str = "str";for ch i str.chars() {pass}// 遍历动态数组vectorlet c = vec![1,2,4];for i in c.iter() {pass}
}

需要注意的是,使用迭代器遍历,得到的不是值本身,而是对值的引用,类似cpp中的:

vector<int> a;
for(auto it = a.begin(); it != a.end(); ++it) {pass;
}

需要加上&it

fn main() {let a = [1,2,4];// 切片for i in a[..].iter() {if *i == 3 {pass}pass}// 遍历字符串let str = "str";for ch i str.chars() {pass}// 遍历动态数组vectorlet c = vec![1,2,4];for i in c.iter() {if *i == 3 {pass}pass}
}
fn main() {let a = [1,2,3,4,5];for i in a[..].iter() {if *i == 1 {print!("YES");}}
}
fn main() {let str = "abcdefg";// 字符串不用 *,chars不是迭代器类型for ch in str.chars() {println!("{}",ch);if ch == 'a' {println!("YES");}}
}

python中的enumerate。

fn main() {let str = "abcdefg";for (i,ch) in str.chars().enumerate() {println!("{} {}",i,ch);if ch == 'a' {println!("YES");}}
}

while

while与python的类似。

# python
n = 3
while n > 0:print(n)n -= 1

Rust中的

let mut number = 3;
while number > 0 {println!("{}",number);number -= 1; // 与python一样,没有 -- ++这些操作符
}

loop

loop相当于while true {},它没有结束的条件,只要没有break就一直循环下去。

fn main() {let mut number:i32 = 3;loop {println!("{}",number);number -= 1;if number == 0 {break;}}
}

breakcontinue

与其他编程语言一样的作用。

作为右值

还是那句话,Rust是基于表达式的语言,这赋予了Rust很多新的特性。像前面提到的if是表达式一样,loop和break都是表达式,同样可以作为右值:

fn main() {let mut number:i32 = 3;let a = loop {println!("{}",number);number -= 1;if number == 0 {break 3;}};println!("{}", a);
}

模式匹配

C/C++中有switch,可以控制多个流程分支。Rust把switch进行了升级,提供了match关键字,这是一个非常强大的控制流运算符,被称为模式匹配。

这种用法与C/C++中switch的用法类似,只是每个分支不需要加break。

在Rust中,match后面跟一个表达式,然后是分支。每个分支又分成两个部分,=>前面的部分叫模式,=>后面是执行体。
match执行时,先计算表达式的值,然后用该值与模式逐一进行匹配,当匹配成功时,执行该模式对应的执行体。若多个模式都匹配,也只执行第一个匹配成功的执行体。模式必须能覆盖所有的可能性,可以使用“_”,匹配其他的情况,类似于C/C++的default。

e.g.假设有1到5元的硬币,找到每个硬币类型出现了几次。

fn main() {let a = [1, 5, 2, 1, 2, 5, 3, 2, 2, 2, 4, 4];let (mut num1, mut num2, mut num3, mut num4, mut num5) = (0,0,0,0,0);for v in a[..].iter() {let val = *v;match val {1 => num1 += 1,2 => num2 += 1,3 => num3 += 1,4 => num4 += 1,5 => num5 += 1,_ => break}}println!("一元硬币有{}, 两元有{} 三元有{} 四元有{} 五元有{}",num1, num2, num3, num4, num5);
}
http://www.yayakq.cn/news/126903/

相关文章:

  • 做钓鱼网站判刑自媒体wordpress
  • 网站建设 全包做网站 难
  • 门户网站建设报告哦广告网站素材
  • 怎样开网站卖东西优创智汇高端网站建设
  • 四川高速公路建设开发集团有限公司网站山东seo
  • 网站建设费用分析精彩 网站
  • 网站关键词没有指数中国建筑人才招聘网官网
  • 房产公司网站建设方案免费网址2021年能用的
  • 门户网站需要多少空间四川建设厅官方网站证件查询
  • 别人做的网站怎么打开吗中英企业网站系统
  • 国外酷炫flash网站毕设做网站答辩稿
  • 东营做网站品牌推广策划方案
  • wordpress国内视频网站吗博物馆展厅设计
  • 网站建设平台天梯建站网站建投网站深圳宝安网站建设公司推荐
  • 百度文库 旅游网站建设方案书建设部咨询资质网站
  • 福建建设职业管理中心网站免费个人网站建站
  • 什么网站代做毕业设计比较好自己网站上放个域名查询
  • 公司网站维护由那个部门做网站建设招标公告
  • 网站外链建设书籍网站做专题页面
  • 北京做家教的的网站怎么样才能让网站
  • 国外免费网站建设做排行榜的网站
  • 孝感网站建设软件深圳品牌营销网站建设
  • 网站改版 目的服装公司网站策划书
  • 自适应型网站建设百度地图导航2022最新版下载
  • opkg 做网站的包叫什么名字大兴安岭商城网站开发设计
  • 公司网站建设作用写一个有图片的网页
  • 门户网站建设教程整站seo怎么做
  • tp框架做商城网站怎么用缓存自适应网站案例源码
  • 揭阳网站开发定制上海百度推广方案
  • 一个彩票网站建设软件开发公司介绍怎么写