Rust 模式匹配示例詳解
函數(shù)
今天學習的內容是 Rust 中的函數(shù)。
函數(shù),和 if 條件控制,while、loop、for 循環(huán)控制,在底層都是使用跳轉實現(xiàn)的,所以函數(shù)也屬于流程控制的一種??梢赃@樣理解,當函數(shù)執(zhí)行時,程序的執(zhí)行主體就進入了函數(shù)內部,當函數(shù)執(zhí)行完畢,則又返還回去,這就是函數(shù)的流程控制。
Rust 中使用函數(shù)和 Typescript 比較像,需要關注參數(shù)的類型和返回值的類型, 再就是有一點 Rust 語言的特性,返回值可以是一個表達式。
參數(shù)的類型注解和變量是一樣的,在參數(shù)名為使用冒號 :
指定類型,返回值的類型使用箭頭 ->
表示。如果函數(shù)沒有返回值,則可以省略。
斐波那契數(shù)列函數(shù)
比如一個斐波那契數(shù)列函數(shù):
fn fibonacci(n: u64) -> u64 { if n < 2 { return n; } return fibonacci(n - 1) + fibonacci(n - 2); } fn main() { println!("斐波那契數(shù)列的第 10 項是:{:?}", fibonacci(10)); // 55 }
前面說過,Rust 是基于表達式的,函數(shù)中也能用到這個特性。一般函數(shù)都會使用 return
來結束函數(shù)的調用和返回值。
Rust 中的函數(shù),如果沒有 return,默認會將最后一個表達式的值作為函數(shù)的返回值,所以上面的斐波那契數(shù)列函數(shù)可以寫成:
fn fibonacci(n: u64) -> u64 { if n < 2 { n } else { fibonacci(n - 1) + fibonacci(n - 2) } }
函數(shù)沒有返回值時,可以省略返回值的類型,或者寫成 ()
:
fn log1(message: &str) { println!("{}", message); } fn log2(message: &str) -> () { println!("{}", message); } fn main() { let message = "測試"; log1(message); log2(message); }
小結
本文介紹了 Rust 中的函數(shù)類型,從程序執(zhí)行的角度看,它也屬于流程控制的一種。但更多時候我們只把函數(shù)看作是對一個功能的封裝。Rust 具備函數(shù)式編程的特性,所以函數(shù)是 Rust 中的重中之重。
以上就是Rust 模式匹配示例詳解的詳細內容,更多關于Rust 模式匹配的資料請關注腳本之家其它相關文章!