Ржавчина - Постоянная
Константы представляют собой значения, которые нельзя изменить. Если вы объявляете константу, ее значение никак не изменится. Ключевое слово для использования констант:const. Константы должны быть явно типизированы. Ниже приводится синтаксис объявления константы.
const VARIABLE_NAME:dataType = value;
Соглашение об именах констант в Rust
Соглашение об именах для констант аналогично названию переменных. Все символы в имени константы обычно пишутся заглавными буквами. В отличие от объявления переменных,let ключевое слово не используется для объявления константы.
Мы использовали константы в Rust в примере ниже -
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
}
Константы и переменные
В этом разделе мы узнаем о различиях между константами и переменными.
Константы объявляются с использованием const ключевое слово, а переменные объявляются с использованием let ключевое слово.
Объявление переменной может дополнительно иметь тип данных, тогда как объявление константы должно указывать тип данных. Это означает, что const USER_LIMIT = 100 приведет к ошибке.
Переменная, объявленная с использованием letключевое слово по умолчанию неизменяемо. Однако у вас есть возможность изменить его, используяmutключевое слово. Константы неизменны.
Константы могут быть установлены только для константного выражения, но не для результата вызова функции или любого другого значения, которое будет вычислено во время выполнения.
Константы можно объявлять в любой области, включая глобальную, что делает их полезными для значений, о которых необходимо знать многим частям кода.
Затенение переменных и констант
Rust позволяет программистам объявлять переменные с одинаковыми именами. В таком случае новая переменная переопределяет предыдущую.
Давайте разберемся в этом на примере.
fn main() {
let salary = 100.00;
let salary = 1.50 ;
// reads first salary
println!("The value of salary is :{}",salary);
}
Приведенный выше код объявляет две переменные по имени зарплата. Первому объявлению присваивается значение 100,00, а второму объявлению - значение 1,50. Вторая переменная затеняет или скрывает первую переменную при отображении вывода.
Вывод
The value of salary is :1.50
Rust поддерживает переменные с разными типами данных при затенении.
Рассмотрим следующий пример.
Код объявляет две переменные по имени uname. Первому объявлению присваивается строковое значение, а второму объявлению - целое число. Функция len возвращает общее количество символов в строковом значении.
fn main() {
let uname = "Mohtashim";
let uname = uname.len();
println!("name changed to integer : {}",uname);
}
Вывод
name changed to integer: 9
В отличие от переменных, константы не могут быть затенены. Если переменные в приведенной выше программе заменить константами, компилятор выдаст ошибку.
fn main() {
const NAME:&str = "Mohtashim";
const NAME:usize = NAME.len();
//Error : `NAME` already defined
println!("name changed to integer : {}",NAME);
}