Biến và kiểu dữ liệu trong Rust
Tìm hiểu biến trong Rust, tính bất biến, shadowing và các kiểu vô hướng cùng tổ hợp dùng hằng ngày.
Bài thứ hai trong loạt Rust cơ bản. Rust đặt sự cẩn thận hiếm có vào cách bạn khai báo và dùng biến — các quy tắc ở đây chính là nền tảng cho sự an toàn của nó.
Biến bất biến theo mặc định#
let name = "Ada";
name = "Grace"; // lỗi: không thể gán hai lần cho biến bất biếnrustĐiều này có chủ đích: dữ liệu bất biến dễ suy luận và an toàn để chia sẻ. Dùng mut để biến thành khả biến:
let mut score = 10;
score += 5;rustChỉ dùng mut khi thực sự cần.
Suy luận kiểu#
Rust tự suy luận kiểu, nhưng bạn có thể khai báo tường minh:
let count: u32 = 42;
let ratio: f64 = 3.14;
let name: &str = "Rust";
let done: bool = true;rustKiểu vô hướng#
| Kiểu | Giá trị |
|---|---|
| Số nguyên | i8..i128, u8..u128 (có dấu/không dấu) |
| Số thực | f32, f64 |
| Boolean | bool |
| Ký tự | char (Unicode, 4 byte) |
Kiểu số nguyên mặc định là i32; số thực mặc định là f64:
let x = 5; // i32
let y = 2.5; // f64rustKiểu tổ hợp#
Tuple gộp nhiều giá trị thuộc kiểu bất kỳ:
let point = (3, 5);
let (x, y) = point; // destructuring
println!("{}", point.0); // 3rustArray chứa nhiều giá trị cùng kiểu với độ dài cố định:
let primes = [2, 3, 5, 7, 11];
println!("{}", primes[0]); // 2rustHằng số#
Giá trị const luôn bất biến và phải có kiểu đã biết:
const MAX_SPEED: u32 = 120;rustKhác với let, const khai báo được ở mọi phạm vi và được nhúng vào lúc biên dịch.
Shadowing#
Bạn có thể dùng lại tên biến để biến đổi giá trị, giữ giá trị cũ cho đến khi giá trị mới có hiệu lực:
let x = 5;
let x = x + 1;rustShadowing cũng cho phép đổi kiểu:
let label = "12"; // &str
let label = label.len(); // usizerustKết luận#
Quy tắc biến của Rust — bất biến theo mặc định, mut tường minh, shadowing — làm cho luồng dữ liệu dự đoán được. Bài tiếp theo trong loạt: luồng điều khiển.