0Pricing
Learn Rust Coding · 课时

向量

可增长的数组

向量 是 CoddyKit 上的免费 Learn Rust Coding 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn Rust Coding 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn Rust Coding 课程共包含 4 节课。

什么是向量?

Vec<T> 是一种可增长数组。与固定大小的数组不同,向量可以在运行时增长或缩小。

所有元素都必须是相同的类型 T。

fn main() {
    let v: Vec<i32> = Vec::new();
    println!("empty vector with length {}", v.len());
}

使用 vec! 创建

vec! 宏是使用初始值创建向量的最简单方式。

fn main() {
    let numbers = vec![1, 2, 3, 4];
    println!("{:?}", numbers);
}

添加元素

使用 push 将元素追加到末尾。要修改向量,它必须是 mut。

fn main() {
    let mut v = Vec::new();
    v.push(10);
    v.push(20);
    v.push(30);
    println!("{:?}", v);
}

删除元素

pop 会删除并返回最后一个元素,返回值包装在 Option 中。如果向量为空,它会返回 None。

fn main() {
    let mut v = vec![1, 2, 3];
    let last = v.pop();
    println!("removed {:?}, now {:?}", last, v);
}

通过索引访问

像数组一样,使用方括号为向量建立索引。超出范围的索引会导致程序发生恐慌。

fn main() {
    let v = vec!["a", "b", "c"];
    println!("first {}", v[0]);
    println!("third {}", v[2]);
}

使用 get 安全访问

get 方法会返回 Option,而不会引发恐慌,因此处理未知索引时更加安全。

fn main() {
    let v = vec![10, 20, 30];
    match v.get(5) {
        Some(x) => println!("found {}", x),
        None => println!("no element there"),
    }
}

遍历向量

使用 for 循环遍历向量中的元素。使用 & 可以借用每个元素,而不获取其所有权。

fn main() {
    let v = vec![100, 200, 300];
    for item in &v {
        println!("item {}", item);
    }
}

遍历时进行修改

使用 &mut 进行遍历,可以直接修改每个元素。使用 * 取消引用即可更改值。

fn main() {
    let mut v = vec![1, 2, 3];
    for item in &mut v {
        *item *= 10;
    }
    println!("{:?}", v);
}

向量长度与空状态

使用 len() 获取元素数量,使用 is_empty() 检查向量是否没有元素。

fn main() {
    let v = vec![5, 6];
    println!("len {} empty {}", v.len(), v.is_empty());
}

常用向量方法

向量提供了许多辅助方法:

  • contains — 检查是否包含某个元素。
  • first / last — 以 Option 形式获取首尾元素。
  • sort — 对元素进行排序。
fn main() {
    let mut v = vec![3, 1, 2];
    v.sort();
    println!("{:?} contains 2: {}", v, v.contains(&2));
}

使用迭代器求和

将向量与迭代器方法结合起来,可以简洁地计算总和。

fn main() {
    let v = vec![10, 20, 30, 40];
    let total: i32 = v.iter().sum();
    println!("total {}", total);
}

快速检查

回顾可以使向量增长的方法。

总结

Rust 中的向量:

  • Vec<T> 是一种可增长且元素类型相同的列表。
  • 使用 Vec::new() 或 vec![...] 创建。
  • push 从末尾添加元素,pop 从末尾删除元素。
  • 可以使用 [] 访问,也可以使用 get 安全访问。
  • 使用 for x in &v 进行遍历。
fn main() {
    let mut scores = vec![80, 90];
    scores.push(100);
    let avg: i32 = scores.iter().sum::<i32>() / scores.len() as i32;
    println!("average {}", avg);
}

常见问题解答

「向量」课时是免费的吗?

是的 — 「向量」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn Rust Coding 课程的其余内容,请升级到 CoddyKit PRO。 Learn Rust Coding 课程共包含 4 节课。

「向量」这节课中我会学到什么?

可增长的数组 你通过在浏览器中直接运行的动手代码来练习 Learn Rust Coding,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Learn Rust Coding 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Learn Rust Coding 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「向量」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Learn Rust Coding 课中编写并运行代码吗?

能。每节 Learn Rust Coding 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 向量
  2. 字符串与 &str
  3. HashMaps
  4. 遍历集合
← 返回 Learn Rust Coding