logo

chém gió về computer science (đang nâng cấp giao diện ^^)

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
0 0 votes
Article Rating
Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Bài liên quan:

Subscribe
Thông báo cho tôi qua email khi
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments

Mục lục

0
Would love your thoughts, please comment.x
()
x