创建向量
本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 8 课,共 66 课。
现在你已经了解了什么是向量,接下来我们来学习如何创建向量。Rust 提供了两种主要的向量创建方式,分别适用于不同的情况。
第一种方法使用 Vec::new() 创建一个空向量,之后你可以向其中添加元素:
let mut numbers = Vec::new();注意,我们使用 mut,因为之后很可能会向这个空向量中添加元素。Rust 并不总是能确定空向量的类型,因此你可能需要显式指定它:
let mut numbers: Vec<i32> = Vec::new();第二种方法使用 vec![] 宏来创建一个包含初始值的向量:
let numbers = vec![1, 2, 3, 4, 5];如果你知道初始值,使用 vec![] 宏会更方便。Rust 可以根据你提供的值自动确定类型,因此不需要类型标注。这个向量包含 5 个整数,可以立即使用。
vec![] 宏还支持重复语法,可以创建一个填充相同值的向量。使用 vec![value; n] 创建一个包含 n 个元素的向量,每个元素都设为 value:
let zeros = vec![0; 5]; // [0, 0, 0, 0, 0]
let tens = vec![10; 3]; // [10, 10, 10]当你想创建一个大小由运行时确定的向量时,这尤其有用,例如根据用户输入来确定大小:
let n = 4;
let data = vec![10; n]; // [10, 10, 10, 10]这两种方法创建的向量类型相同,选择哪种方法取决于你是否有初始值,或者是否打算逐步构建向量。
挑战
简单你会收到一个数字作为输入,表示向量应包含多少个元素。读取输入,将其转换为整数,并创建一个包含相应数量元素的向量,其中每个元素的值都是 10。
要求:
- 读取输入并将其转换为整数
- 使用
vec![]宏创建向量 - 向量应包含指定数量的元素
- 每个元素的值都应为
10 - 将每个元素单独打印在一行上
输入:一个表示元素数量的整数
输出:将向量的每个元素单独打印在一行上
亲手试试
use std::io;
fn main() {
// 读取输入
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let n: usize = input.trim().parse().expect("Invalid input");
// TODO:在下方编写你的代码
// 创建一个包含 n 个元素的向量,每个元素的值都是 10
// 每行输出一个元素
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Rust 在线编译器