rust默認變量是不可變的,經過加mut設置變量可變安全
fn main() { let _immutable_variable = 1i; let mut mutable_variable = 1i; println!("Before mutation: {}", mutable_variable); // Ok mutable_variable += 1; println!("After mutation: {}", mutable_variable); // Error! _immutable_variable += 1; // FIXME ^ Comment out this line }
變量具備局部做用域,被限制在所屬的代碼塊內ui
fn main() { let a = 1; { let b = 2; println!("{}", b); // 2 println!("{}", a); // 1 let a = 3; println!("{}", a);// 3 } println!("{}", a); // 1 println!("{}", b);//編譯不經過,b不在此做用域 }
rust語言內置的類型:this
i8
, i16
, i32
, i64
和 int
(機器字長)u8
, u16
, u32
, u64
和 uint
(機器字長)f32
, f64
char
Unicode字符 (Scalars) 例如 'a'
(4字長)bool
邏輯類型,取值爲 true
和 false
()
, 其惟一值也是 ()
rust不提供基礎類型之間的隱式類型轉換,只能使用as
關鍵字顯式轉換類型spa
let decimal = 65.4321; let integer = decimal as u8;
rust裏面幾乎全部語句都是表達式,也就是具備值。 代碼塊也是表達式,能夠作爲賦值語句中的右值。代碼塊的最後一條表達式的值,將做爲該代碼塊的值,被賦值給左值。可是,若是代碼塊的最後一條語句以分號;
結尾,其值將是()
,也就沒有值。code
if-else語句也是表達式,每一個分支必須返回相同的類型,以確保類型安全。ci