一个‘向量’是一个动态的或者‘可增长的’数组,作为标准库类型 Vec<T>来实现。T 表示我们可以有任何类型的向量(更多信息,请参照泛型的章节)。向量总是在堆上分配它们的数据。你可以使用vec! 宏来创建它们:
let v = vec![1, 2, 3, 4, 5]; // v: Vec<i32>
(注意,与在之前我们使用的println! 宏不同,对于vec! 宏我们使用方括号[]。Rust 允许您在两种情况下使用,这只是个约定。)
对于重复一个初始值,这里有vec! 的另一种形式:
let v = vec![0; 10]; // ten zeroes
若要获取在向量中的特定索引处的值,我们使用[]:
let v = vec![1, 2, 3, 4, 5];println!("The third element of v is {}", v[2]);
由于指数从0 开始,所以第三个元素是v[2]。
一旦你有了一个向量,你可以通过for 来遍历它的元素。这里有三个版本:
let mut v = vec![1, 2, 3, 4, 5];for i in &v {println!("A reference to {}", i);}for i in &mut v {println!("A mutable reference to {}", i);}for i in v {println!("Take ownership of the vector and its element {}", i);}
向量有许多更有用的方法,你可以在它们的 API 文档中读到。
关闭