Day 5:if 表達式與 match
學習目標
- 理解 if 在 Rust 是「表達式」(會回傳值)
- 學會用 branch 賦值給變數
- 初識 match 的威力
今日重點
if 是表達式
let number = 7;
let description = if number > 0 {
"positive"
} else if number < 0 {
"negative"
} else {
"zero"
};
println!("{} is {}", number, description);
每個 branch 回傳的型別必須一致。
match 表達式
let grade = 'B';
let description = match grade {
'A' => "Excellent",
'B' => "Good",
'C' => "Average",
'D' => "Below Average",
'F' => "Failing",
_ => "Invalid grade", // 預設情況
};
println!("Grade {}: {}", grade, description);
簡單 if(無賦值)
if number >= 1_000_000 {
println!("A large number");
}
練習
fn main() {
let score = 85;
let grade = if score >= 90 {
'A'
} else if score >= 80 {
'B'
} else if score >= 70 {
'C'
} else {
'F'
};
println!("Score {} -> Grade {}", score, grade);
}
自我檢查
- 知道 if 在 Rust 是表達式、可以賦值
- 會用 match 做跨多種情況的分支
- 知道 match 一定要有
_或覆蓋所有情況
深入連結
- The Book 第 6 章「The match Control Flow Construct」