Một trong những thành phần của Rust là các câu biểu thức, đây là các câu lệnh thực hiện các công việc tính toán và cho ra các kết quả là các giá trị. Tuy nhiên biểu thức đứng một mình thì sẽ không có ý nghĩa nên thường sẽ đi với các câu lệnh.
Ví dụ:
fn main() {
let a = 2;
let b = 5;
let n = a + b;
}
Trong đoạn code trên, let a = 2
, let b = 5
là các câu lệnh, còn a + b
là biểu thức, kết quả của biểu thức a + b sẽ cho ra giá trị 5, sau đó giá trị này sẽ được gán cho biến n
trong câu lệnh
let n = a + b
let n = a + b; ^^^^^^^ ^^^^^^ Câu lệnh Biểu thức
Thông thường thì biểu thức hay được dùng để trả kết quả trong các hàm (chúng ta sẽ tìm hiểu sau). Các biểu thức và câu lệnh phải được kết thúc bằng dấu chấm phẩy ở cuối câu, nếu không có thì Rust sẽ báo lỗi.
fn main() {
let a = 5;
let b = 10 // Lỗi thiếu dấu chấm phẩy
}
Một đoạn code chương trình sẽ bao gồm nhiều câu lệnh, từng câu sẽ được thực hiện từ trên xuống dưới.
Các câu lệnh gán nối nhau không được hỗ trợ trong Rust, ví dụ như:
let a = b = c = 3; // Lỗi
Cách duy nhất là ghi từng câu lệnh tiếp nối nhau, ví dụ:
fn main() {
let mut n = 0;
let mut m = 1;
let t = m; m = n; n = t;
println!("{} {} {}", m, n, t); // OK: 1 0 1
}
Các khối lệnh trong Rust cũng được coi là các câu lệnh và có trả về giá trị, giá trị được trả về sẽ là giá trị của biểu thức cuối cùng trong khối lệnh, ví dụ:
fn main() {
let n1 = {
let a = 2;
let b = 5;
a + b // Không cần dấu chấm phẩy, chỉ cần có biểu thức là được
};
println!("{}", n1);
}
Câu lệnh cuối cùng trong khối lệnh không cần có dấu chấm phẩy, Rust chỉ quan tâm xem nó có phải là biểu thức có trả về giá trị nào không.
7