แบบฝึกหัด: บทที่ 3 - Functions
แบบฝึกหัดที่ 1: Function พื้นฐาน
เขียน function greet ที่:
- รับ parameter
name: &str - Print “Hello, {name}!”
ดูเฉลย
fn greet(name: &str) {
println!("Hello, {}!", name);
}
fn main() {
greet("World");
greet("Rust");
}
แบบฝึกหัดที่ 2: Return Value
เขียน function add ที่:
- รับ
a: i32และb: i32 - Return ผลรวม
ดูเฉลย
fn add(a: i32, b: i32) -> i32 {
a + b // ไม่มี semicolon = return
}
// หรือ
fn add_explicit(a: i32, b: i32) -> i32 {
return a + b;
}
fn main() {
let sum = add(5, 3);
println!("5 + 3 = {}", sum);
}
แบบฝึกหัดที่ 3: Multiple Parameters
เขียน function calculate_rectangle_area ที่:
- รับ
width: f64และheight: f64 - Return พื้นที่ (width * height)
ดูเฉลย
fn calculate_rectangle_area(width: f64, height: f64) -> f64 {
width * height
}
fn main() {
let area = calculate_rectangle_area(5.0, 3.0);
println!("Area: {}", area); // 15.0
}
แบบฝึกหัดที่ 4: Early Return
เขียน function is_even ที่:
- รับ
n: i32 - Return
trueถ้าเป็นเลขคู่,falseถ้าเป็นเลขคี่
ดูเฉลย
fn is_even(n: i32) -> bool {
n % 2 == 0
}
// หรือใช้ early return
fn is_even_v2(n: i32) -> bool {
if n % 2 == 0 {
return true;
}
false
}
fn main() {
println!("4 is even: {}", is_even(4)); // true
println!("7 is even: {}", is_even(7)); // false
}
แบบฝึกหัดที่ 5: Function ที่ Return Tuple
เขียน function min_max ที่:
- รับ
a: i32,b: i32,c: i32 - Return tuple
(min, max)
ดูเฉลย
fn min_max(a: i32, b: i32, c: i32) -> (i32, i32) {
let min = a.min(b).min(c);
let max = a.max(b).max(c);
(min, max)
}
fn main() {
let (min, max) = min_max(5, 2, 8);
println!("min: {}, max: {}", min, max); // min: 2, max: 8
}
👉 บทที่ 4