rust 語法和語義 01 變數繫結

2021-08-15 18:31:21 字數 1602 閱讀 2529

變數繫結 variable-bindings

fn foobar() 

-------------------------------------

scope

between

keyword mutability patterns type annotations = initializing bindings

let mut x : u32 = 5;

shadowing

let x = "i shadowed to string";

-------------------------------------

關鍵字let宣告乙個繫結binding

let x = 5;
let語句等式左面是乙個模式pattern。他可以是變數variable也可以是元組tuple等。

let (x, y) = (1, 2);
: 型別名明確指出 模式型別。可以如下方式朗讀:

「x 被繫結為 i32 型別,他的值是 5」

let x : i32 = 5;

let (x, y) : (u32, u32) = (1, 2);

繫結預設是不可變immutable的。使用關鍵字mut使乙個繫結可變。

let mut x = 5;
mint: 類似於c中的關鍵字const

在c中,很多函式的引數宣告上都會寫上const防止原始資料被意外修改而破壞。

繫結要求在使用它之前必須初始化

let x = 5;
作用域:變數繫結被限制在他們被定義的塊中存在。乙個塊是被包圍的語句集合。

fn foo() , {}", x, y); 

}// error, y is out of scope

println!("y isn't in this scope: {}, {}", x, y);

}

隱藏:乙個後宣告並位於同一作用域scope相同名字的繫結將會覆蓋前乙個繫結。

// mutable

let mut x : i32 = 1;

x = 7;

// shadowing

let y = 4;

let y = "i'm shadowed to string";

rust 語法和語義 02 函式

函式 functions fn func name var1 u32,var2 u32 u32 使用關鍵字fn宣告乙個函式。fn func name 使用逗號,分割引數。且必須為引數宣告型別 type annotations。fn func name var1 u32,var2 i32 rust函式...

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

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

語法和語義錯誤。

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