Rust 程式設計影片教程(進階)——025_4 訪問或者修改可變靜態變數

linghuyichong發表於2020-02-17

頭條地址:https://www.ixigua.com/i677586170644791348...
B站地址:https://www.bilibili.com/video/av81202308/

github地址:https://github.com/anonymousGiga/learn_rus...

(1)全域性變數在 Rust 中被稱為 靜態(static)變數。
例子:

static HELLO_WORLD: &str = "Hello, world!";
fn main() {
    println!("name is: {}", HELLO_WORLD);
}

說明:通常靜態變數的名稱採用 SCREAMING_SNAKE_CASE 寫法,並 必須 標註變數的型別,在這個例子中是 &’static str。靜態變數只能儲存擁有 ‘static 生命週期的引用。
(2)常量和靜態變數的區別:
a、靜態變數中的值有一個固定的記憶體地址(使用這個值總會訪問相同的地址),常量則允許在任何被用到的時候複製其資料。
b、靜態變數可以是可變的,雖然這可能是不安全的(所以要用unsafe)。
例子:

//讀取或修改一個可變靜態變數
static mut COUNTER: u32 = 0;
fn add_to_count(inc: u32) {
    unsafe {
        COUNTER += inc;
    }
}
fn main() {
    add_to_count(3);
    unsafe {
        println!("COUNTER: {}", COUNTER);
    }
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結
令狐一衝

相關文章