Rust 從基礎到精通 — 第 2 講
學習變數、類型、函數和模式匹配
該部落格上撰寫的文章是出於教學目的而創建的。 另外,文章中的資訊可能不正確,請謹慎。
Rust 在編譯階段檢查變數類型和值的有效範圍。 如果您了解基本語法、表達式和模式匹配,後續的專有程式碼將變得更容易閱讀。
變數和類型
let level: u32 = 10;
let speed = 4.5_f32;
let alive = true;
let mut health = 100;
health -= 20;
變數預設不能更改,只有加入mut才能更改值。 當不變性是預設值時,找到哪些程式碼正在改變狀態就變得更容易。
整數類型具有固定的大小和符號。 當轉換為其他數值類型時,您必須使用 as 或轉換函數來表示您的意圖。
表達
let state = if health <= 0 {
"Dead"
} else if health < 30 {
"Danger"
} else {
"Normal"
};
Rust 的 if 可以用來當作傳回值的運算式。 每個分支傳回的類型必須相同。
如果沒有分號,則區塊中的最後一個表達式將成為傳回值。 如果加上分號,它就變成沒有值的單位類型。
匹配並重複
let reward = match rank {
'S' => 1000,
'A' => 500,
_ => 100,
};
let mut total = 0;
for damage in [10, 20, 15] {
total += damage;
}
匹配檢查以確保不會遺漏任何可能的情況。 _ 是先前未處理的剩餘模式。
功能
fn calculate_damage(attack: i32, defense: i32) -> i32 {
(attack - defense).max(1)
}
指定參數和傳回類型,最後一個表達式就是結果。 函數不僅僅是減少程式碼的工具,而是在輸入、輸出和責任之間創建邊界的工具。