遍历向量
本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 11 课,共 66 课。
现在你已经知道如何创建向量并访问单个元素,接下来我们来学习如何系统地处理向量中的每个元素。for 循环非常适合完成这项任务,它可以让你按顺序遍历每个元素。
下面是遍历向量的基本语法:
let names = vec!["Alice", "Bob", "Charlie"];
for name in &names {
println!("Hello, {}!", name);
}注意 names 前面的 &,它会创建一个指向该向量的引用,让你无需取得向量本身的所有权就能读取每个元素。每次迭代都会通过循环变量 name 让你访问一个元素。
for 循环会自动为你进行边界检查。与手动索引不同,你不会意外访问不存在的元素。循环会恰好遍历向量中的所有元素,因此既安全又方便。
你可以将这种模式用于任何类型的向量:
let scores = vec![85, 92, 78, 90];
for score in &scores {
println!("Score: {}", score);
}当你需要读取向量中所有元素的值时,这种方法是最常见、最符合惯用写法的处理方式。
挑战
简单编写一个函数 sum_all_elements,它接收一个向量 numbers,并返回其中所有元素的总和。
使用 for 循环遍历向量,并累加所有元素的总和。
参数:
numbers(Vec<i32>):要累加的整数向量
返回值:向量中所有元素的总和(i32)
亲手试试
fn sum_all_elements(numbers: Vec<i32>) -> i32 {
// 在这里编写代码
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Rust 在线编译器