Rust 入門 - Vector

vector 允許我們在一個(gè)單獨(dú)的數(shù)據(jù)結(jié)構(gòu)中儲(chǔ)存多于一個(gè)的值,它在內(nèi)存中彼此相鄰地排列所有的值。vector 只能儲(chǔ)存相同類型的值。vector 是用泛型實(shí)現(xiàn)的

使用

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; // 引用運(yùn)算符(*)獲取 i 中的值
}
println!("v = {:#?}", v);

使用枚舉來儲(chǔ)存多種類型

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),
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 通用編程概念 變量與可變性 變量默認(rèn)不可變,如需要改變,可在變量名前加 mut 使其可變。例如:let mut a...
    soojade閱讀 12,714評論 2 30
  • 通用集合類型 vector 允許我們一個(gè)挨著一個(gè)的存儲(chǔ)一系列數(shù)量可變的值。 字符串是一個(gè)字符的集合 **哈希 ma...
    kaiv2閱讀 1,633評論 0 0
  • 操作系統(tǒng)中 heap 和 stack 的區(qū)別 什么是基于注解的切面實(shí)現(xiàn) 什么是 對象/關(guān)系 映射集成模塊 什么是 ...
  • 基礎(chǔ) 數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ) 說一下幾種常見的排序算法和分別的復(fù)雜度。 冒泡排序 具體的原理就是未排好,自上而下的比...
    廣告被屏蔽閱讀 466評論 0 0
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,412評論 2 7

友情鏈接更多精彩內(nèi)容