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

Tự học Rust – Bài 9: Tuples & Enums – Cấu trúc dữ liệu linh hoạt

URL copied
Share URL copied
Tự học Rust - Bài 9: Tuples & Enums - Cấu trúc dữ liệu linh hoạt
Tự học Rust – Bài 9: Tuples & Enums – Cấu trúc dữ liệu linh hoạt

1. Tuples (Bộ giá trị)

Tuple là một cách để gom nhóm các giá trị có kiểu dữ liệu khác nhau vào trong một biến duy nhất.

Tạo một Tuple:

let person = ("John", 30, true);

Truy cập giá trị:

Bạn truy cập các phần tử bằng dấu chấm `.` kèm theo chỉ số (bắt đầu từ 0).

println!("Tên: {}", person.0);
println!("Tuổi: {}", person.1);

Giải nén (Unpacking):

Bạn có thể tách Tuple thành các biến riêng biệt:

let (name, age, is_active) = person;
println!("Chào {}, bạn {} tuổi.", name, age);

2. Enums (Kiểu liệt kê)

Enum (Enumeration) cho phép bạn định nghĩa một kiểu dữ liệu có thể là một trong số các giá trị đã liệt kê. Mỗi giá trị này được gọi là một Variant.

Tạo và sử dụng Enum:

enum Direction {
    Up,
    Down,
    Left,
    Right,
}

let player_move = Direction::Left;

Enum kết hợp với Match:

Đây là bộ đôi “trời sinh” trong Rust. `match` giúp bạn xử lý logic cho từng trường hợp của Enum một cách an toàn.

match player_move {
    Direction::Up => println!("Đi lên"),
    Direction::Down => println!("Đi xuống"),
    _ => println!("Rẽ hướng khác"),
}

3. Enum chứa dữ liệu (Bí quyết sức mạnh của Rust)

Khác với nhiều ngôn ngữ khác, Enum trong Rust có thể mang theo dữ liệu bên trong từng variant.

enum LoginStatus {
    Success(String), // Mang theo tên người dùng
    Error(String),   // Mang theo thông báo lỗi
}

let result = LoginStatus::Success(String::from("TuanNDA"));

match result {
    LoginStatus::Success(user) => println!("Chào mừng {}!", user),
    LoginStatus::Error(msg) => println!("Lỗi: {}", msg),
}

Lời kết Bài 9

Tuples và Enums giúp mã nguồn của bạn trở nên rõ ràng và “tự thân tài liệu hóa” (self-documenting). Ở bài tiếp theo, hãy chuẩn bị tinh thần để chinh phục khái niệm quan trọng nhất, cũng là “đặc sản” của Rust: Ownership (Quyền sở hữu).

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...