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

网站建设与管理怎么样邯郸做wap网站费用

网站建设与管理怎么样,邯郸做wap网站费用,wordpress 动画主题,青海建设厅职称网站目录 Rust 编程小技巧(6) 1. 打印字符串 2. 重复打印字串 3. 自定义函数 4. 遍历动态数组 5. 遍历二维数组 6. 同时遍历索引和值 7. 迭代器方法的区别 8. for_each() 用法 9. 分离奇数和偶数 10. 判断素数(质数) Rust 编程小技巧(6) 1. 打印…

eb88291a18a94ba4ace118fb4e46ef23.png

目录

Rust 编程小技巧(6)

1. 打印字符串

2. 重复打印字串

3. 自定义函数

4. 遍历动态数组

5. 遍历二维数组

6. 同时遍历索引和值

7. 迭代器方法的区别

8. for_each() 用法

9. 分离奇数和偶数

10. 判断素数(质数)


Rust 编程小技巧(6)

1. 打印字符串

fn main() {println!("Hello, world");let s = "Rust";print!("{}", s);println!();
}

Rust 打印主要用宏 print!()、println!(),打印宏的占位符使用 {}。

2. 重复打印字串

有多种方法,比如使用:循环、string.repeat()、vector.join()等等。

fn main() {for _ in 0..8 {print!("rust");}println!("\n{}", "rust".repeat(8));let s = vec!["rust"; 8];println!("{:?}", s);println!("{}", s.join(""));println!("{}", s.join("."));
}

输出:

rustrustrustrustrustrustrustrust
rustrustrustrustrustrustrustrust
["rust", "rust", "rust", "rust", "rust", "rust", "rust", "rust"]
rustrustrustrustrustrustrustrust
rust.rust.rust.rust.rust.rust.rust.rust

3. 自定义函数

比如,一个整数的平方、绝对值

fn square(x: i32) -> i32 {x * x
}fn abs(x: i32) -> i32 {if x < 0 {return -x;}x
}fn main() {let n = square(9);println!("{}", n);println!("{}", abs(-10));
}

rust 函数的返回关键字 return,在最后的出口可以省略,只需一个表达式(不用分号结尾)。

4. 遍历动态数组

.into_iter() 转迭代器

fn main() {let items = vec![11, 22, 33];for x in items.clone().into_iter() {do_something(x);}items.clone().into_iter().for_each(|x| do_something(x));println!("{:?}", items);
}fn do_something(n: i64) {println!("Number {}", n)
}

输出:

Number 11
Number 22
Number 33
Number 11
Number 22
Number 33
[11, 22, 33]

5. 遍历二维数组

.iter() 创建迭代器 

fn main() {let vec = vec![vec![1, 2], vec![3, 4], vec![5, 6]];  for outer_iter in vec.iter() {  for inner_iter in outer_iter.iter() {  print!("{} ", inner_iter);  }  }println!();vec.iter().for_each(|x| x.iter().for_each(|y| print!("{} ", y)));println!();
}

6. 同时遍历索引和值

.enumerate() 枚举

fn main() {test1();test2();
}fn test1() {let items = ["a", "b", "c"];for (i, x) in items.iter().enumerate() {println!("Item {} = {}", i, x);}
}fn test2() {let items = ["a", "b", "c"];items.iter().enumerate().for_each(|(i, x)| {println!("Item {} = {}", i, x);});
}

7. 迭代器方法的区别

.into_iter() 和 .iter() 两个方法都用于创建迭代器,它们的区别在于:

1.所有权转移:.into_iter() 方法会消耗当前的集合,并将所有权转移给迭代器。这意味着在迭代完成后,原集合将不再可用。而 .iter() 方法不会消耗集合,它只是创建一个新的迭代器,你可以在迭代完成后继续使用原集合。

2.消耗和产生元素:.into_iter() 会消耗集合中的元素,并将它们放入迭代器中。这意味着每次调用迭代器的 next() 方法都会消耗集合中的一个元素。而 .iter() 只是产生元素的引用,并不会消耗集合中的元素。

3.用途:当你需要遍历集合中的元素并获取它们的所有权时,应该使用 .into_iter()。当你只需要读取集合中的元素而不消耗它们时,应该使用 .iter()。

8. for_each() 用法

fn main() {// 迭代一个 vec 并打印每个元素  let vec = vec![1, 2, 3, 4, 5];  vec.iter().for_each(|x| print!("{} ", x));println!();// 迭代一个字符串并打印每个字符  let s = "hello";  s.chars().for_each(|c| print!("{} ", c));println!();// 迭代一个 vec 并将其元素加倍  let mut v1 = vec![1, 2, 3, 4, 5];let mut v2 = vec![];v1.iter().for_each(|x| v2.push(x * 2));  println!("{:?}", v2);v1.clone().iter().for_each(|x| v1.push(x * 2));  println!("{:?}", v1);
}

输出:

1 2 3 4 5 
h e l l o 
[2, 4, 6, 8, 10]
[1, 2, 3, 4, 5, 2, 4, 6, 8, 10]

9. 分离奇数和偶数

.filter() 方法是一个在标准库中的std::iter::Iterator trait的默认方法。这个方法会创建一个新的迭代器,包含所有满足给定条件的元素。

示例:分离一个数组中的奇数和偶数

fn main() {let mut vec = vec![1, 2, 3, 4, 5];  vec.clone().iter().for_each(|x| vec.push(x + 5));  println!("{:?}", vec);fn is_even(x: &i32) -> bool { *x % 2 == 0 }fn print_x(x: &i32) { print!("{} ", x) }vec.iter().filter(|x| !is_even(x)).for_each(|x| print_x(x));println!();vec.iter().filter(|x| is_even(x)).for_each(|x| print_x(x));println!();
}

输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
1 3 5 7 9 
2 4 6 8 10  

10. 判断素数(质数)

.any() 方法是一个在标准库中的std::iter::Iterator trait的默认方法。这个方法会检查迭代器中是否有元素满足给定的条件,如果有元素满足条件,它就会返回true,否则返回false。

示例:求30以内的质数

fn is_prime(n: u64) -> bool {match n {0..=1 => false,_ => !(2..n).any(|d| n % d == 0),}
}fn main() {for i in 1..=30 {if is_prime(i) {print!("{} ", i);}}println!();
}

输出:

2 3 5 7 11 13 17 19 23 29 


 相关阅读:

Rust 编程小技巧摘选(1)_Hann Yang的博客-CSDN博客

Rust 编程小技巧摘选(2)_Hann Yang的博客-CSDN博客

Rust 编程小技巧摘选(3)_Hann Yang的博客-CSDN博客

Rust 编程小技巧摘选(4)_Hann Yang的博客-CSDN博客

Rust 编程小技巧摘选(5)_Hann Yang的博客-CSDN博客

http://www.yayakq.cn/news/223664/

相关文章:

  • 哪个网站适合 做红本抵押昆明网站开发培训机构
  • 网站建设与管理课后答案篮球网站建设目标
  • 新网站建设风格室内设计和平面设计区别
  • 网站建设公司 销量如何做品牌运营与推广
  • 萍乡网站建设公司做网站发房源综合语录
  • 做游戏的php网站有哪些网站防止机器注册
  • 猎奇网站模板外链网盘网站
  • 济宁网站建设多少钱wordpress 爬虫 视频教程
  • 功能型网站建设时间怎么给网站做关键词排名
  • 个股期权网站开发河南郑州做网站汉狮
  • 永年企业做网站推广云南人
  • 网站建设运营费用包括哪些拍摄企业宣传片哪家好
  • 电子商务网站需要做那些准备工作医疗网站建设比较好的
  • 呼伦贝尔网站设计wordpress连接数据库文件
  • 网站设计模板psd网站模板二次开发
  • idc网站模版网站后台管理系统怎么进
  • 专业网站建设案例移动端是手机端吗
  • 网页设计制作网站首页企业网站营销的实现方式
  • 做网站分几步wordpress 后台好卡
  • 佛山市南海建设局网站推广公司有哪些公司
  • 亚马逊做网站发礼物换评价响应式装饰设计公司网站源码
  • 西安网站维护托管网站收录查询代码
  • 旅游网站开发毕业设计上海个体工商户如何注册
  • 如何添加网站市场调研报告怎么写范文
  • 重庆建设工程查询网站百度网站广告怎么做
  • 铲车找事做找哪些网站免备案wordpress主机
  • 营销型网站seo网站建设多选题百度文库
  • 建站之星7大核心价值前端跟后端哪个就业难
  • 好123设为主页sem seo新手好做吗
  • 帝国cms网站源码网站开发 功能不会写