【Rust】for 循环
2021/11/30 23:36:51
本文主要是介绍【Rust】for 循环,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
环境
- Rust 1.56.1
- VSCode 1.60.2
概念
参考:https://doc.rust-lang.org/stable/rust-by-example/flow_control/for.html
for 循环可以遍历一个迭代器。遍历迭代器有三种方式:into_iter,iter 和 iter_mut。
示例
区间
生成迭代器的简单方法是使用区间,默认情况下是左闭右开的,可以使用 =
来使右闭。
fn main() { // .. 生成一个区间 for n in 1..101 { if n % 15 == 0 { println!("fizzbuzz"); } else if n % 3 == 0 { println!("fizz"); } else if n % 5 == 0 { println!("buzz"); } else { println!("{}", n); } } // .. 生成一个区间,= 号可以取到右边的值 for n in 1..=100 { if n % 15 == 0 { println!("fizzbuzz"); } else if n % 3 == 0 { println!("fizz"); } else if n % 5 == 0 { println!("buzz"); } else { println!("{}", n); } } }
into_iter 迭代
如果没有指明,默认使用 into_iter
迭代。使用这种迭代方式会消耗集合,循环完后,集合不能再被使用。
fn main() { let names = vec!["Bob", "Frank", "Ferris"]; for name in names.into_iter() { match name { "Ferris" => println!("There is a rustacean among us!"), _ => println!("Hello {}", name), } } // println!("names: {:?}", names); // 集合已经被消耗了,不能使用了。 }
iter 迭代
使用这种迭代只会借用元素,循环完成后,集合还可以正常使用。
fn main() { let names = vec!["Bob", "Frank", "Ferris"]; for name in names.iter() { match *name { "Ferris" => println!("There is a rustacean among us!"), _ => println!("Hello {}", name), } } println!("names: {:?}", names); }
iter_mut 迭代
可变借用,可以修改集合中的元素。
fn main() { let mut names = vec!["Bob", "Frank", "Ferris"]; for name in names.iter_mut() { *name = match *name { "Ferris" => "There is a rustacean among us!", _ => "Hello", } } println!("names: {:?}", names); }
总结
了解了 Rust 中的 for 循环,可以用来遍历迭代器,有三种不同的迭代方法。
附录
这篇关于【Rust】for 循环的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22Java语音识别项目入门教程
- 2024-11-22JAVA云原生入门指南
- 2024-11-22[开源]10.3K+ Star!轻量强大的开源运维平台,超赞!
- 2024-11-21Flutter基础教程:新手入门指南
- 2024-11-21Flutter跨平台教程:新手入门详解
- 2024-11-21Flutter跨平台教程:新手入门与实践指南
- 2024-11-21Flutter列表组件教程:初学者指南
- 2024-11-21Flutter列表组件教程:新手入门指南
- 2024-11-21Flutter入门教程:初学者必看指南
- 2024-11-21Flutter入门教程:从零开始的Flutter开发指南