rust(二) 變量及類型

rust變量

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類型

rust語言內置的類型:this

  • 有符號正數:i8, i16, i32, i64int(機器字長)
  • 無符號正數:u8, u16, u32, u64uint (機器字長)
  • 浮點數:f32, f64
  • char Unicode字符 (Scalars) 例如 'a' (4字長)
  • bool 邏輯類型,取值爲 truefalse
  • 空元組類型 (), 其惟一值也是 ()

類型轉換

rust不提供基礎類型之間的隱式類型轉換,只能使用as關鍵字顯式轉換類型spa

let decimal = 65.4321;
let integer = decimal as u8;

表達式

rust裏面幾乎全部語句都是表達式,也就是具備值。 代碼塊也是表達式,能夠作爲賦值語句中的右值。代碼塊的最後一條表達式的值,將做爲該代碼塊的值,被賦值給左值。可是,若是代碼塊的最後一條語句以分號;結尾,其值將是(),也就沒有值。code


if和else

if-else語句也是表達式,每一個分支必須返回相同的類型,以確保類型安全。ci

相關文章
相關標籤/搜索