🔢 Các Kiểu Dữ Liệu Cơ Bản
Kiểu Dữ Liệu Là Gì?
Kiểu dữ liệu (data type) cho Rust biết loại giá trị và cách lưu trữ trong bộ nhớ.
Giải Thích Cho Bạn 5 Tuổi
Kiểu dữ liệu giống như loại hộp để đựng đồ:
- 📦 Hộp số nguyên: Đựng số không dấu phẩy (1, 2, 3)
- 🎁 Hộp số thực: Đựng số có dấu phẩy (3.14, 2.5)
- ✅ Hộp đúng/sai: Đựng true/false
- 🔤 Hộp ký tự: Đựng một chữ cái ('A', '🦀')
Mỗi loại hộp có kích thước và công dụng riêng! 📏
🎯 Hai Loại Chính
Rust có 2 categories:
1. Scalar Types (Kiểu Vô Hướng)
Một giá trị đơn:
- Integers (số nguyên)
- Floating-point (số thực)
- Booleans (đ úng/sai)
- Characters (ký tự)
2. Compound Types (Kiểu Phức Hợp)
Nhiều giá trị gộp lại:
- Tuples
- Arrays
Bài này học Scalar Types!
🔢 Integers (Số Nguyên)
Số không có phần thập phân: 1, 42, -100
Các Loại Integers
| Độ dài | Có dấu | Không dấu | Phạm vi (có dấu) |
|---|---|---|---|
| 8-bit | i8 | u8 | -128 đến 127 |
| 16-bit | i16 | u16 | -32,768 đến 32,767 |
| 32-bit | i32 | u32 | -2 tỷ đến 2 tỷ |
| 64-bit | i64 | u64 | -9 triệu tỷ đến 9 triệu tỷ |
| 128-bit | i128 | u128 | Cực lớn! |
| arch | isize | usize | Phụ thuộc CPU |
Giải thích:
i= integer có dấu (âm/dương)u= unsigned (chỉ dương)- Số = số bits
i32 - Default Choice
fn main() {
let x = 42; // Rust mặc định dùng i32
let y: i32 = 100;
println!("x = {}, y = {}", x, y);
}
Tại sao i32?
- ✅ Đủ lớn cho hầu hết cases
- ✅ Nhanh nhất trên CPU 32-bit và 64-bit
- ✅ Cân bằng giữa size và performance