Rust 程式設計視訊教程對應講解內容-vector

linghuyichong發表於2019-12-26

頭條地址:https://www.ixigua.com/i676544267458235648...
B站地址:https://www.bilibili.com/video/av78062009?...
網易雲課堂地址:https://study.163.com/course/introduction....

1、新建vector
(1)新建空的vector

let v: Vec<i32> = vec::new();

(2)新建包含初始值的vector

let v = vec![1, 2, 3];

2、更新vector

let mut v = Vec::new();
v.push(5);
v.push(6);

3、丟棄vector時也丟棄其所有元素

{
    let v = vec![1, 2, 3];
    ...
    //此處離開v的作用域,v被丟棄,其中的元素也被丟棄
}

4、讀取vector元素

let v = vec![1, 2, 3, 4, 5];

//方法一:使用索引
let third: &i32 = &v[2]; //third = 3

//方法二:使用get方法,rust推薦的方法
match v.get(2) {
    Some(value) => println!("value = {}", value),
    None => println!("None"),
}

//----複習知識點:不能在相同作用域下同時使用可變和不可變引用----
let mut v = vec![1, 2, 3, 4, 5];
let first = &v[0]; //不可變引用
v.push(6);
println!("first = {}", first); //error,因為上一行已經變化(可變引用)

4、遍歷vector
(1)不可變方式

let v = vec![1, 2, 3];
for i in &v {
    println!("{}", i);
}

(2)可變方式

let v = vec![1, 2, 3];
for i in &mut v {
    *i += 1;
    println!("i+1 = {}", i);
}

5、使用列舉儲存多種型別

enum Content {
    Text(String),
    Float(f64),
    Int(i32),
}

let c = vec![
    Content::Text(""String::),
    Content::Int(-2),
    Content::Float(0.99)
];

令狐一衝

相關文章