Table of contents
Open Table of contents
1. Định nghĩa một Struct
Để định nghĩa một Struct, bạn dùng từ khóa struct và đặt tên theo quy tắc PascalCase (viết hoa chữ cái đầu mỗi từ). Các biến bên trong được gọi là các trường (fields).
struct User {
username: String,
email: String,
active: bool,
age: u32,
}
2. Khởi tạo Object từ Struct
Sau khi đã có “khuôn”, bạn có thể tạo ra các đối tượng cụ thể. Lưu ý rằng mọi field trong Struct phải được gán giá trị khi khởi tạo.
let user1 = User {
username: String::from("tuannda"),
email: String::from("[email protected]"),
active: true,
age: 28,
};
// Truy cập dữ liệu bằng dấu chấm .
println!("Tên người dùng: {}", user1.username);
3. Thay đổi giá trị trong Struct
Cũng giống như biến thông thường, một đối tượng Struct mặc định là bất biến. Nếu muốn thay đổi giá trị của các field, bạn phải dùng từ khóa mut.
let mut user1 = User {
username: String::from("tuan"),
email: String::from("[email protected]"),
active: true,
age: 18,
};
user1.age = 19; // Thay đổi giá trị trường age
Lưu ý: Rust không cho phép bạn đánh dấu chỉ một field là mutable. Toàn bộ đối tượng phải là mutable hoặc không.
4. Tại sao nên dùng Structs?
- Gom nhóm dữ liệu: Giúp code sạch sẽ hơn thay vì dùng quá nhiều biến lẻ tẻ.
- Tính thực tế: Giúp mô phỏng các đối tượng thực tế như Người dùng, Cuốn sách, Chiếc xe, v.v.
- Bảo trì dễ dàng: Khi bạn cần thêm thông tin cho một đối tượng, chỉ cần cập nhật định nghĩa Struct.
Lời kết Bài 12
Struct là nền tảng của lập trình hướng dữ liệu trong Rust. Ở bài tiếp theo, chúng ta sẽ làm rõ sự khác biệt giữa hai kiểu chuỗi văn bản phổ biến nhất trong Rust: &str và String, để bạn không còn bối rối khi xử lý text nữa.
Hẹn gặp lại các bạn!