Rust 语言的 for 循环用法

在 Rust 中,for 循环是一种用于迭代集合(如数组、切片、向量、字符串、映射、通道等)或其他可迭代对象的方式。Rust 的 for 循环语法相对直观,并且与许多其他编程语言中的 for 循环类似。

以下是 for 循环在 Rust 中的一些常见用法:

迭代数组或切片

let numbers = [1, 2, 3, 4, 5];

for number in numbers.iter() {
    println!("{}", number);
}

或者,如果你确定 numbers 是可变的,并且你不需要返回所有权,可以直接使用 into_iter()

let numbers = [1, 2, 3, 4, 5];

for number in numbers.into_iter() {
    println!("{}", number);
}

从 Rust 1.0 开始,可以使用更简洁的语法直接迭代数组:

let numbers = [1, 2, 3, 4, 5];

for number in &numbers {
    println!("{}", number);
}

或者,如果数组是可变的,你可以直接迭代它:

let mut numbers = [1, 2, 3, 4, 5];

for number in numbers.iter_mut() {
    *number *= 2; // 修改每个元素的值
}

迭代字符串中的字符

let text = "Hello, Rust!";

for character in text.chars() {
    println!("{}", character);
}

迭代映射(HashMap)的键值对

use std::collections::HashMap;

let mut scores = HashMap::new();
scores.insert("Alice", 100);
scores.insert("Bob", 90);

for (name, score) in &scores {
    println!("{}: {}", name, score);
}

迭代范围

for i in 0..5 { // 不包含 5
    println!("{}", i);
}

for i in 0..=5 { // 包含 5
    println!("{}", i);
}

迭代枚举值

enum Color {
    Red,
    Green,
    Blue,
}

let colors = [Color::Red, Color::Green, Color::Blue];

for color in colors.iter() {
    match color {
        Color::Red => println!("Red"),
        Color::Green => println!("Green"),
        Color::Blue => println!("Blue"),
    }
}

使用 C 风格的 for 循环

虽然 Rust 推荐使用迭代器的 for 循环,但有时你可能需要更底层的控制,可以使用 range 函数和 to 方法来创建一个范围,并使用 C 风格的 for 循环:

let mut sum = 0;
for i in 0..10 {
    sum += i;
}
println!("Sum: {}", sum);

使用 while 循环进行迭代

虽然这不是一个 for 循环,但有时候 while 循环可以用于实现类似的功能,尤其是在需要基于某种条件迭代时:

let mut i = 0;
while i < 5 {
    println!("{}", i);
    i += 1;
}

注意,Rust 中的 for 循环通常比 while 循环更受欢迎,因为它们提供了更清晰的语法,并且更易于理解和维护。在使用 for 循环时,通常不需要手动管理索引或迭代器,因为 Rust 会为你处理这些细节。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>