Current date May 18, 2026
Tự học Rust

Tự học Rust – Bài 11: Hàm (Functions)

URL copied
Share URL copied
Tự học Rust - Bài 11: Hàm (Functions)
Tự học Rust – Bài 11: Hàm (Functions)

1. Định nghĩa và Gọi hàm

Để tạo hàm, bạn dùng từ khóa `fn`, theo sau là tên hàm theo quy tắc snake_case (viết thường, phân cách bằng dấu gạch dưới).

fn say_hello() {
    println!("Xin chào từ một hàm!");
}

fn main() {
    say_hello(); // Gọi hàm
}

2. Hàm có Tham số

Khi khai báo hàm có tham số, bạn bắt buộc phải chỉ định kiểu dữ liệu cho từng tham số.

fn greet(name: &str, age: i32) {
    println!("Chào {}, bạn {} tuổi.", name, age);
}

fn main() {
    greet("Tuấn", 28);
}

3. Hàm có giá trị trả về

Bạn sử dụng ký hiệu mũi tên `->` để chỉ định kiểu dữ liệu trả về của hàm.

Cách 1: Dùng từ khóa `return`

fn add(a: i32, b: i32) -> i32 {
    return a + b;
}

Cách 2: Sử dụng Expression (Khuyên dùng)

Trong Rust, dòng cuối cùng của một hàm nếu không có dấu chấm phẩy `;` sẽ được coi là giá trị trả về của hàm đó.

fn add(a: i32, b: i32) -> i32 {
    a + b // Không có dấu ; ở đây!
}

Lưu ý: Đây là cách viết đặc trưng của Rust, giúp code trông gọn gàng và tinh tế hơn.

4. Phạm vi của hàm

Trong Rust, bạn có thể định nghĩa hàm ở bất cứ đâu trong file mã nguồn. Không quan trọng là bạn định nghĩa hàm trước hay sau khi gọi nó, miễn là hàm đó nằm trong cùng một phạm vi mà trình biên dịch có thể nhìn thấy.

Lời kết Bài 11

Hiểu cách sử dụng hàm và giá trị trả về là nền tảng để bạn bắt đầu xây dựng những module phức tạp hơn. Ở bài sau, chúng ta sẽ bước vào thế giới của Structs – cách để bạn tự tạo ra những kiểu dữ liệu tùy chỉnh cho ứng dụng của mình.

Hẹn gặp lại các bạn!

Share URL copied

Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Active0
AI3
AI & Automation10

Exclusives

Lifestyle

Related Articles

Tự học Rust – Bài 20: Concurrency – Đa luồng an toàn tuyệt đối

Khám phá cách Rust xử lý lập trình đa luồng mà không...

Tự học Rust – Bài 19: Con trỏ thông minh (Smart Pointers)

Vượt xa các tham chiếu thông thường với Smart Pointers: Box, Rc...

Tự học Rust – Bài 18: Lifetimes – Đảm bảo tham chiếu hợp lệ

Lifetimes là gì? Tại sao Rust cần chúng? Tìm hiểu cách trình...

Tự học Rust – Bài 17: Generics – Viết mã nguồn linh hoạt

Sử dụng Generics trong Rust để tạo ra các hàm và cấu...