1. 程式人生 > >Rust 每日千行之旅<1>:變量、可變性、常量、隱藏

Rust 每日千行之旅<1>:變量、可變性、常量、隱藏

main span 左值 無法 nbsp hello 顯示 world! logs

rust 是強類型語言,所有變量、常量都必須有明確的數據類型;很多情況下,省略類型聲明,編譯器可自動推導,但不是所有情況下都會成功。

一、rust 中的變量值默認是不允許改變的,即不可二次斌值,如下代碼無法通過編譯,需要在變量前添加 mut 標識

fn main() {
    let zVar: i64 = 0;    // let mut zVar: i64 = 0;
    zVar = 1;
    println!("{}", zVar);
}

二、rust 中可以連續定義同名變量,新的變量將覆蓋舊的變量,且前後的變量類型可以不一致:即 shadowing 特性。

fn main() {
let zvar: i32 = 0;
let zvar: i32 = zvar + 1;
let zvar: i32 = zvar * 2;
let zvar: &str = "Hello World!";
let zvar = zvar.len();

println!("{}", zvar);
}

三、rust 中常量定義必須顯示指明數據類型,同一作用域內不可重名,局部定義覆蓋全局定義。

const GLOB_NUM: f64 = 0.0;    // 右值必須符合左值聲明的數據類型,如指定 f64,但右值賦值為 1,則無法通過編譯。

fn main() {
    let zvar: i32 = 0;
    let zvar: i32 = zvar + 1;
    let zvar: i32 = zvar * 2;
    let zvar: &str = "Hello World!";
    let zvar = zvar.len();

    const GLOB_NUM: f64 
= 1.0; println!("{} {}", zvar, GLOB_NUM); }

____

Rust 每日千行之旅<1>:變量、可變性、常量、隱藏