Rust 入门 - Vector

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),
}

推荐阅读更多精彩内容

  • 通用编程概念 变量与可变性 变量默认不可变,如需要改变,可在变量名前加 mut 使其可变。例如:let mut a...
    soojade阅读 12,180评论 2 30
  • 通用集合类型 vector 允许我们一个挨着一个的存储一系列数量可变的值。 字符串是一个字符的集合 **哈希 ma...
    kaiv2阅读 1,352评论 0 0
  • 操作系统中 heap 和 stack 的区别 什么是基于注解的切面实现 什么是 对象/关系 映射集成模块 什么是 ...
    城市里永远的学习者阅读 697评论 0 49
  • 基础 数据结构与算法基础 说一下几种常见的排序算法和分别的复杂度。 冒泡排序 具体的原理就是未排好,自上而下的比...
    广告被屏蔽阅读 216评论 0 0
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 113,219评论 2 7