Ржавчина - Постоянная

Константы представляют собой значения, которые нельзя изменить. Если вы объявляете константу, ее значение никак не изменится. Ключевое слово для использования констант: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);
}