rust 語法和語義 02 函式

2021-08-15 18:59:43 字數 1082 閱讀 9577

函式 functions

fn func_name(var1 : u32, var2 : u32) -> u32 

使用關鍵字fn宣告乙個函式。

fn func_name()
使用逗號,分割引數。且必須為引數宣告型別 type annotations

fn func_name(var1 : u32, var2 : i32)
rust函式只能返回1個值。

rust是基於表示式的語言。

在函式宣告的乙個箭頭->後面,宣告返回值型別 type annotations

在函式中,返回的表示式不加分號semicolon';'

fn add_one(x: u32) -> u32 

使用關鍵字return

fn foo(x: u32, y: u32) -> u32

可以在最後返回時也使用return語句,但這被認為是一種糟糕的風格。請記住:

rust是基於表示式的語言。

發散函式並不返回。返回型別!代表發散

fn diverges() -> !
發散函式可以被用作任何型別。

let x: i32 = diverges()

let x: string = diverges()

指向函式的指標(變數繫結)。

let pfunc: fn(u32) -> u32;

rust 語法和語義 01 變數繫結

變數繫結 variable bindings fn foobar scope between keyword mutability patterns type annotations initializing bindings let mut x u32 5 shadowing let x i sh...

rust 語法和語義 10 引用和借用

引用和借用 references and borrowing 所有權概念將依照官方介紹,分為3個部分說明 操作格式 宣告example t引用 物件不可變 vec mut t 引用 物件 可變 mut vec 訪問 可變物件的引用 似乎類似 c 中的取位址操作,獲得乙個指標 似乎類似 c 中的取位址...

語法和語義錯誤。

編寫程式時,它幾乎是不可避免的,你會犯錯誤。在本節中,我們將談論的是錯誤的種類,以及它們是如何共同處理。錯誤分為兩類 語法和語義錯誤。語法錯誤 語法錯誤發生時,你寫了乙個宣告根據c 語言語法無效。比如說呢。如果5 6然後寫 不平等 雖然這種說法是人類能夠理解,它是不是有效的基於c 的語法。正確的c ...