Table of contents
Open Table of contents
1. Cấu trúc chương trình Rust
Hãy nhìn lại file main.rs:
fn main() {
println!("Hello, world!");
}
fn main(): Đây là điểm bắt đầu (entry point) của mọi chương trình Rust. Khi bạn chạy code, hàmmainsẽ được gọi đầu tiên.- Dấu ngoặc nhọn
{}: Dùng để bao bọc khối mã nguồn của hàm. println!(): Đây không phải là một hàm thông thường mà là một Macro (dấu hiệu nhận biết là có dấu!).- Dấu chấm phẩy
;: Dùng để kết thúc một câu lệnh. Đừng quên nó nhé!
2. Khai báo biến với let
Để tạo một biến trong Rust, chúng ta dùng từ khóa let.
let x = 5;
let name = "Tuấn";
Placeholder {} trong println!
Rust sử dụng cặp ngoặc nhọn {} làm vị trí giữ chỗ để in giá trị của biến ra màn hình.
let name = "John";
let age = 30;
println!("{} is {} years old.", name, age);
Lưu ý: Các giá trị truyền vào sau dấu phẩy sẽ được thay thế vào {} theo đúng thứ tự.
3. Tính bất biến (Immutability)
Đây là điểm cực kỳ quan trọng: Trong Rust, mặc định các biến là bất biến (Immutable). Tức là một khi bạn đã gán giá trị, bạn không thể thay đổi nó.
Ví dụ gây lỗi:
let x = 5;
x = 10; // Lỗi! Compiler sẽ báo: "cannot assign twice to immutable variable"
Tại sao lại như vậy?
Việc mặc định bất biến giúp chương trình của bạn an toàn hơn, tránh được các thay đổi dữ liệu ngoài ý muốn - một trong những nguyên nhân chính gây ra lỗi trong các hệ thống lớn.
4. Biến có thể thay đổi (mut)
Nếu bạn thực sự muốn thay đổi giá trị của biến, bạn phải thêm từ khóa mut (viết tắt của mutable) khi khai báo.
let mut x = 5;
println!("Trước: {}", x);
x = 10; // Hợp lệ!
println!("Sau: {}", x);
Lời kết Bài 2
Việc nắm vững cách khai báo biến và hiểu về mut là chìa khóa để làm việc với hệ thống quản lý bộ nhớ của Rust sau này. Ở bài tiếp theo, chúng ta sẽ khám phá thế giới của các Kiểu dữ liệu (Data Types) để biết Rust xử lý số, chữ và các giá trị logic như thế nào.
Hẹn gặp lại các bạn!