vector 允许我们在一个单独的数据结构中储存多于一个的值,它在内存中彼此相邻地排列所有的值。vector 只能储存相同类型的值。vector 是用泛型实现的
使用
let v: Vec<i32> = Vec::new();
let v = vec![1, 2, 3];
可变的
let mut v = Vec::new();
// 添加
v.push(1);
v.push(2);
v.push(3);
读取
let mut v = vec![1, 2, 3, 4, 5];
// 使用索引获取值
let third: &i32 = &v[2];
// v.push(999); 被上面借用,不能push
println!("third = {}", third);
// 使用 get 获取值
match v.get(5) {
Some(third) => println!("third = {}", third),
None => println!("There is no third element."),
}
遍历 vector 中的元素
let v = vec![100, 22, 11];
for i in &v {
println!("{}", i);
}
遍历并修改 vector中的元素
let mut v = vec![11, 22, 33];
for i in &mut v {
*i = *i + 50; // 引用运算符(*)获取 i 中的值
}
println!("v = {:#?}", v);
使用枚举来储存多种类型
let row = vec![
SpreadsheetCell::Int(3),
SpreadsheetCell::Float(999.99),
SpreadsheetCell::Text(String::from("hello")),
];
println!("row = {:#?}", row);
for r in row {
println!("{:?}", r);
}
#[derive(Debug)]
enum SpreadsheetCell {
Int(i32),
Float(f64),
Text(String),
}