Day 3:函式入門
學習目標
- 學會定義與呼叫函式
- 理解「表達式 vs 陳述式」以及回傳值
- 會用不同方式傳遞參數
今日重點
基本函式與回傳值
fn add(a: i32, b: i32) -> i32 {
a + b // 最後一行不加分號 = 回傳值
}
fn main() {
let result = add(5, 3);
println!("5 + 3 = {}", result);
}
關鍵概念:表達式 vs 陳述式
- 陳述式(Statement):有分號,執行但不回傳值
- 表達式(Expression):沒有分號,會回傳值
fn add(a: i32, b: i32) -> i32 {
let sum = a + b; // 這是陳述式(有分號)
sum // 這是表達式(無分號),當回傳值
}
無回傳值的函式(返回 ())
fn greet(name: &str) {
println!("Hello, {}!", name);
}
練習
fn square(x: i32) -> i32 {
x * x
}
fn main() {
println!("5^2 = {}", square(5));
}
1. 寫一個
multiply(a, b) 函式並呼叫。
2. 故意把函式最後一行加上分號,觀察「回傳 ()」造成型別錯誤的訊息。
自我檢查