国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Rust -- 模式與匹配

這篇具有很好參考價值的文章主要介紹了Rust -- 模式與匹配。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 模式

匹配類型中的結(jié)構(gòu)(數(shù)據(jù)的形狀),結(jié)合 模式和match表達式 提供程序控制流的支配權(quán)

  • 模式組成內(nèi)容
  • 字面量
  • 解構(gòu)的數(shù)組、枚舉、結(jié)構(gòu)體、元組
  • 變量
  • 通配符
  • 占位符

流程:匹配值 --> 是否擁有正確的數(shù)據(jù) --> 運行特定的代碼

2. 使用模式的位置

  • match分支:由match關(guān)鍵字、一個匹配的值和一個或多個分支構(gòu)成
    • 窮盡性:所有可能的值都必須考慮到
    • _: 匹配所有情況,不綁定任何變量
enum Status {  
    // 其中對應(yīng)的值通過 Status::OK as i32方式取出
    OK = 200,
    NotFound = 404,
    Create = 201
}

fn main() {
    let status = Status::OK;

    match status {
        // 將枚舉
        Status::OK => println!("{}", Status::OK as i32),
        _ => println!()
    }
}
  • if let 語句

只關(guān)心一種情況的match分支的簡寫,可選的else在模式不匹配時執(zhí)行,可以靈活搭配 else if 、else if let,搭配之間不需要關(guān)聯(lián)性

  • while let 條件循環(huán)

只要模式匹配就一直進行while循環(huán)

fn main() {
    let mut stack = Vec::new();
    // 推入數(shù)據(jù)
    stack.push(1);
    stack.push(2);
    stack.push(3);
    stack.push(4);

    // 彈出數(shù)據(jù)
    while let Some(v) = stack.pop() {
        println!("value: {}", v)
    }
}
  • for循環(huán)

模式是for關(guān)鍵字直接跟隨的值

fn main() {
    let valuse = vec![1, 2, 3, 4, 5];
    
    // 遍歷vector,使用了模式對元祖進行解構(gòu)
    for (index, value) in valuse.iter().enumerate() {
        println!("index: {}, value: {}", index, value)
    }
}
  • let 語句

將模式與表達式進行比較,并為任何找到的名稱賦值

fn main() {
    // 結(jié)構(gòu)元祖
    let (x, y, z) = (1, 2, 3);
    println!("{}, {}, {}", z, y, x);
    
    // 普通變量聲明
    let x = 5;
}
  • 函數(shù)參數(shù)

與let語句一致

fn function_pattern(&(x, y): &(i32, i32)) -> i32 {
    x + y
}

fn main() {
    let num = (1, 2);
    let sum = function_pattern(&num);
    println!("sum: {}", sum)
}

3. 模式分類

依據(jù):匹配是否可能失敗文章來源地址http://www.zghlxwxcb.cn/news/detail-426275.html

  • 不可反駁: 能匹配任何傳遞的可能值
  • let語句 for循環(huán) 函數(shù)
  • 可反駁: 對某些可能存在的值進行匹配會失敗
  • if let、 while let、match分支

4. 模式語法

  • 匹配字面量
fn main() {
    let name = "beimen";

    match name {
        "beimen" => println!("beimen"),
        "chuixue" => println!("chuixue"),
        _ => println!("unknown")
    }
}

到了這里,關(guān)于Rust -- 模式與匹配的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包