日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Rust?模式匹配示例詳解_Rust語(yǔ)言

作者:昆吾kw ? 更新時(shí)間: 2022-11-29 編程語(yǔ)言

函數(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ù)可以寫(xiě)成:

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

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

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 中的重中之重。

原文鏈接:https://juejin.cn/post/7156822932017610759

欄目分類
最近更新