Gỉ - Không đổi
Hằng số đại diện cho các giá trị không thể thay đổi. Nếu bạn khai báo một hằng số thì không có cách nào giá trị của nó thay đổi. Từ khóa để sử dụng hằng số làconst. Các hằng số phải được nhập rõ ràng. Sau đây là cú pháp để khai báo một hằng số.
const VARIABLE_NAME:dataType = value;
Quy ước đặt tên không đổi gỉ
Quy ước đặt tên cho Hằng tương tự như quy ước đặt tên cho các biến. Tất cả các ký tự trong một tên hằng thường được viết hoa. Không giống như khai báo các biến,let từ khóa không được sử dụng để khai báo một hằng số.
Chúng tôi đã sử dụng hằng số trong Rust trong ví dụ dưới đây -
fn main() {
const USER_LIMIT:i32 = 100; // Declare a integer constant
const PI:f32 = 3.14; //Declare a float constant
println!("user limit is {}",USER_LIMIT); //Display value of the constant
println!("pi value is {}",PI); //Display value of the constant
}
Hằng số v / s Biến
Trong phần này, chúng ta sẽ tìm hiểu về các yếu tố phân biệt giữa hằng và biến.
Hằng số được khai báo bằng cách sử dụng const từ khóa trong khi các biến được khai báo bằng cách sử dụng let từ khóa.
Một khai báo biến có thể tùy chọn có kiểu dữ liệu trong khi khai báo hằng phải chỉ định kiểu dữ liệu. Điều này có nghĩa là const USER_LIMIT = 100 sẽ dẫn đến lỗi.
Một biến được khai báo bằng cách sử dụng lettừ khóa theo mặc định là bất biến. Tuy nhiên, bạn có một tùy chọn để thay đổi nó bằng cách sử dụngmuttừ khóa. Hằng số là bất biến.
Hằng số chỉ có thể được đặt thành một biểu thức hằng chứ không phải kết quả của một lệnh gọi hàm hoặc bất kỳ giá trị nào khác sẽ được tính toán trong thời gian chạy.
Hằng số có thể được khai báo trong bất kỳ phạm vi nào, kể cả phạm vi toàn cục, điều này làm cho chúng hữu ích cho các giá trị mà nhiều phần của mã cần biết.
Đổ bóng của các biến và hằng số
Rust cho phép người lập trình khai báo các biến có cùng tên. Trong trường hợp như vậy, biến mới sẽ ghi đè biến trước đó.
Hãy để chúng tôi hiểu điều này với một ví dụ.
fn main() {
let salary = 100.00;
let salary = 1.50 ;
// reads first salary
println!("The value of salary is :{}",salary);
}
Đoạn mã trên khai báo hai biến theo tên lương. Khai báo đầu tiên được gán giá trị 100,00 trong khi khai báo thứ hai được gán giá trị 1,50. Biến thứ hai đổ bóng hoặc ẩn biến đầu tiên trong khi hiển thị đầu ra.
Đầu ra
The value of salary is :1.50
Rust hỗ trợ các biến với các kiểu dữ liệu khác nhau trong khi tạo bóng.
Hãy xem xét ví dụ sau.
Mã khai báo hai biến theo tên uname. Khai báo đầu tiên được gán một giá trị chuỗi, trong khi khai báo thứ hai được gán một số nguyên. Hàm len trả về tổng số ký tự trong một giá trị chuỗi.
fn main() {
let uname = "Mohtashim";
let uname = uname.len();
println!("name changed to integer : {}",uname);
}
Đầu ra
name changed to integer: 9
Không giống như các biến, hằng số không thể bị che khuất. Nếu các biến trong chương trình trên được thay thế bằng các hằng, trình biên dịch sẽ báo lỗi.
fn main() {
const NAME:&str = "Mohtashim";
const NAME:usize = NAME.len();
//Error : `NAME` already defined
println!("name changed to integer : {}",NAME);
}