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

Tự học Rust – Bài 12: Structs – Khởi tạo kiểu dữ liệu tùy chỉnh

URL copied
Share URL copied
Tự học Rust - Bài 12: Structs - Khởi tạo kiểu dữ liệu tùy chỉnh
Tự học Rust – Bài 12: Structs – Khởi tạo kiểu dữ liệu tùy chỉnh

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: &strString, để 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!

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