iT邦幫忙

0

二、三天學一點點 Rust:來!總結變數的基本概念(5)

  • 分享至 

  • xImage
  •  

這邊要總結一下變數的基本概念。

直接上程式碼說明。

#![allow(unused_variables)]
const TOUCHDOWN_POINTS: i32 = 6;
type Points = i32;
fn main() {
    let favorite_season = "Summer";
    let mut _points_score: Points = 28;
    _points_score = 35;
    let event_time = "06:00";
    let event_time = 6;
    let favorite_beverage = "Coca";
    println!(
        "My favorite season is {}. The team scroed {} points. The event started at {}. 
        A touchdown is worth {} points.",
        favorite_season, _points_score, event_time, TOUCHDOWN_POINTS
    );
}
#![allow(unused_variables)]

✅ 這是一個「編譯器指令」(compiler directive),是一種標註,
它的作用是:告訴編譯器如何解析程式碼,例如:允許未使用變數,也不要跳出警告

#![allow(unused_variables)]

fn main() {
    let a = 10; // 不使用也不會警告
}

這邊要特別注意!井字號後方多個驚嘆號。
👉 套件層級(crate-level)屬性

  • 加在 整支檔案的最上方
  • 影響整個 crate 的編譯行為(可視為「全局設定」)
    適用於:
    src/main.rs
    src/lib.rs
#[allow(unused_variables)]
fn main() {
    let b = 20; // 不使用也不會警告
}

fn other() {
    let c = 30; // ⚠️ 這裡會有警告,因為不在上面設定裡
}

👉 區域層級(item-level)屬性

  • 加在 函數、變數、模組、結構體等前面
  • 僅影響該項目本身
    適用於:
    單一變數
    單一函數
const TOUCHDOWN_POINTS: i32 = 6;

✅ 宣告一個常數 TOUCHDOWN_POINTS,型別為 i32,值為 6
Rust 中的常數(constant)在程式執行過程中不可變更,會在編譯時就決定好。

type Points = i32;

✅ 定義型別別名(type alias),Points 是 i32 的別名
這讓程式碼更語意化,例如代表分數時不直接寫 i32,而是寫 Points 會更清楚。

    let mut _points_score: Points = 28;
    _points_score = 35;

✅ 宣告一個可變的變數 _points_score,初始值為 28,型別是 Points(即 i32)
變數名稱前面加 _ 表示「我知道這變數沒被用,但請編譯器不要警告」。
✅ 將 _points_score 的值改為 35。
✅ 這邊在前一篇文章提到就不多討論。

    let event_time = "06:00";
    let event_time = 6;

✅ 第一行宣告 event_time 為字串 "06:00",
✅ 第二行使用**變數遮蔽(variable shadowing)**重新宣告同名變數為整數 6。
舊的變數會被新的取代。

    let favorite_beverage = "Coca";

✅ 宣告一個變數 favorite_beverage,內容為 "Coca"。雖然沒被用到,因為上方有#![allow(unused_variables)],所以不會報警告。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言