欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Rust 模式匹配示例詳解

 更新時(shí)間:2022年10月21日 14:21:10   作者:昆吾kw  
這篇文章主要為大家介紹了Rust 模式匹配示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

函數(shù)

今天學(xué)習(xí)的內(nèi)容是 Rust 中的函數(shù)。

函數(shù),和 if 條件控制,while、loop、for 循環(huán)控制,在底層都是使用跳轉(zhuǎn)實(shí)現(xiàn)的,所以函數(shù)也屬于流程控制的一種。可以這樣理解,當(dāng)函數(shù)執(zhí)行時(shí),程序的執(zhí)行主體就進(jìn)入了函數(shù)內(nèi)部,當(dāng)函數(shù)執(zhí)行完畢,則又返還回去,這就是函數(shù)的流程控制。

Rust 中使用函數(shù)和 Typescript 比較像,需要關(guān)注參數(shù)的類型返回值的類型, 再就是有一點(diǎn) Rust 語(yǔ)言的特性,返回值可以是一個(gè)表達(dá)式。

參數(shù)的類型注解和變量是一樣的,在參數(shù)名為使用冒號(hào) : 指定類型,返回值的類型使用箭頭 -> 表示。如果函數(shù)沒(méi)有返回值,則可以省略。

斐波那契數(shù)列函數(shù)

比如一個(gè)斐波那契數(shù)列函數(shù):

fn fibonacci(n: u64) -> u64 {
    if n < 2 {
        return n;
    }
    return fibonacci(n - 1) + fibonacci(n - 2);
}
fn main() {
    println!("斐波那契數(shù)列的第 10 項(xiàng)是:{:?}", fibonacci(10)); // 55
}

前面說(shuō)過(guò),Rust 是基于表達(dá)式的,函數(shù)中也能用到這個(gè)特性。一般函數(shù)都會(huì)使用 return 來(lái)結(jié)束函數(shù)的調(diào)用和返回值。

Rust 中的函數(shù),如果沒(méi)有 return,默認(rèn)會(huì)將最后一個(gè)表達(dá)式的值作為函數(shù)的返回值,所以上面的斐波那契數(shù)列函數(shù)可以寫成:

fn fibonacci(n: u64) -> u64 {
    if n < 2 {
        n
    } else {
        fibonacci(n - 1) + fibonacci(n - 2)
    }
}

函數(shù)沒(méi)有返回值時(shí),可以省略返回值的類型,或者寫成 ()

fn log1(message: &str) {
    println!("{}", message);
}
fn log2(message: &str) -> () {
    println!("{}", message);
}
fn main() {
    let message = "測(cè)試";
    log1(message);
    log2(message);
}

小結(jié)

本文介紹了 Rust 中的函數(shù)類型,從程序執(zhí)行的角度看,它也屬于流程控制的一種。但更多時(shí)候我們只把函數(shù)看作是對(duì)一個(gè)功能的封裝。Rust 具備函數(shù)式編程的特性,所以函數(shù)是 Rust 中的重中之重。

以上就是Rust 模式匹配示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Rust 模式匹配的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Rust常用特型之ToOwned特型示例詳解

    Rust常用特型之ToOwned特型示例詳解

    在Rust中,假定某類型實(shí)現(xiàn)了Clone特型,如果給你一個(gè)對(duì)它引用,那我們得到它指向內(nèi)容的備份的最常見(jiàn)方式是調(diào)用其clone()函數(shù),這篇文章主要介紹了Rust常用特型之ToOwned特型,需要的朋友可以參考下
    2024-04-04
  • Rust中的Copy和Clone對(duì)比分析

    Rust中的Copy和Clone對(duì)比分析

    這篇文章主要介紹了Rust中的Copy和Clone及區(qū)別對(duì)比分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • 一文帶你了解Rust是如何處理錯(cuò)誤的

    一文帶你了解Rust是如何處理錯(cuò)誤的

    程序在運(yùn)行的過(guò)程中,總是會(huì)不可避免地產(chǎn)生錯(cuò)誤,而如何優(yōu)雅地解決錯(cuò)誤,也是語(yǔ)言的設(shè)計(jì)哲學(xué)之一。本文就來(lái)和大家來(lái)了Rust是如何處理錯(cuò)誤的,感興趣的可以了解一下
    2022-11-11
  • rust交叉編譯問(wèn)題及報(bào)錯(cuò)解析

    rust交叉編譯問(wèn)題及報(bào)錯(cuò)解析

    這篇文章主要為大家介紹了rust交叉編譯問(wèn)題及報(bào)錯(cuò)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 關(guān)于rust的模塊引入問(wèn)題

    關(guān)于rust的模塊引入問(wèn)題

    Rust 語(yǔ)言是一種高效、可靠的通用高級(jí)語(yǔ)言,它的執(zhí)行效率也是令人稱贊的,是一種少有的兼顧開(kāi)發(fā)效率和執(zhí)行效率的語(yǔ)言,這篇文章主要介紹了rust的模塊引入相關(guān)知識(shí),需要的朋友可以參考下
    2022-10-10
  • 從零開(kāi)始使用Rust編寫nginx(TLS證書(shū)快過(guò)期了)

    從零開(kāi)始使用Rust編寫nginx(TLS證書(shū)快過(guò)期了)

    wmproxy已用Rust實(shí)現(xiàn)http/https代理,?socks5代理,?反向代理,?負(fù)載均衡,?靜態(tài)文件服務(wù)器,websocket代理,四層TCP/UDP轉(zhuǎn)發(fā),內(nèi)網(wǎng)穿透等,本文給大家介紹從零開(kāi)始使用Rust編寫nginx(TLS證書(shū)快過(guò)期了),感興趣的朋友一起看看吧
    2024-03-03
  • Rust中字符串類型&str和String的使用

    Rust中字符串類型&str和String的使用

    在Rust中,字符串是一種非常重要的數(shù)據(jù)類型,&str和String是Rust中兩種主要的字符串類型,本文主要介紹了Rust中字符串類型&str和String的使用,感興趣的可以了解一下
    2024-03-03
  • Rust結(jié)構(gòu)體的定義與實(shí)例化詳細(xì)講解

    Rust結(jié)構(gòu)體的定義與實(shí)例化詳細(xì)講解

    結(jié)構(gòu)體是一種自定義的數(shù)據(jù)類型,它允許我們將多個(gè)不同的類型組合成一個(gè)整體。下面我們就來(lái)學(xué)習(xí)如何定義和使用結(jié)構(gòu)體,并對(duì)比元組與結(jié)構(gòu)體之間的異同,需要的可以參考一下
    2022-12-12
  • 一文詳解Rust中的錯(cuò)誤處理

    一文詳解Rust中的錯(cuò)誤處理

    這篇文章主要為大家詳細(xì)介紹了Rust中的錯(cuò)誤處理的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • 一文弄懂Rust之切片

    一文弄懂Rust之切片

    在Rust中,切片是一種非常重要的引用類型,它允許你安全地引用一段連續(xù)內(nèi)存中的數(shù)據(jù),而不需要擁有這些數(shù)據(jù)的所有權(quán),本文主要介紹了Rust之切片,感興趣的可以了解一下
    2024-03-03

最新評(píng)論