變數繫結 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 ...