Rdza - stała

Stałe reprezentują wartości, których nie można zmienić. Jeśli zadeklarujesz stałą, nie ma możliwości zmiany jej wartości. Słowem kluczowym do używania stałych jestconst. Stałe muszą być jawnie wpisane. Poniżej znajduje się składnia deklarowania stałej.

const VARIABLE_NAME:dataType = value;

Konwencja nazewnictwa stałych rdzy

Konwencja nazewnictwa dla stałych jest podobna do konwencji dla zmiennych. Wszystkie znaki w stałej nazwie są zwykle pisane wielkimi literami. W przeciwieństwie do deklarowania zmiennych,let słowo kluczowe nie jest używane do deklarowania stałej.

W poniższym przykładzie użyliśmy stałych w 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
}

Stałe v / s Zmienne

W tej sekcji dowiemy się o czynnikach różnicujących stałe i zmienne.

  • Stałe są deklarowane przy użyciu const słowo kluczowe, podczas gdy zmienne są deklarowane przy użyciu let słowo kluczowe.

  • Deklaracja zmiennej może opcjonalnie mieć typ danych, podczas gdy deklaracja stała musi określać typ danych. Oznacza to, że const USER_LIMIT = 100 spowoduje błąd.

  • Zmienna zadeklarowana przy użyciu letsłowo kluczowe jest domyślnie niezmienne. Możesz jednak zmutować go przy użyciu rozszerzeniamutsłowo kluczowe. Stałe są niezmienne.

  • Stałe można ustawić tylko na stałe wyrażenie, a nie na wynik wywołania funkcji lub jakąkolwiek inną wartość, która zostanie obliczona w czasie wykonywania.

  • Stałe można deklarować w dowolnym zakresie, w tym w zakresie globalnym, dzięki czemu są przydatne dla wartości, o których musi wiedzieć wiele części kodu.

Cieniowanie zmiennych i stałych

Rust umożliwia programistom deklarowanie zmiennych o tej samej nazwie. W takim przypadku nowa zmienna zastępuje poprzednią zmienną.

Zrozummy to na przykładzie.

fn main() {
   let salary = 100.00;
   let salary = 1.50 ; 
   // reads first salary
   println!("The value of salary is :{}",salary);
}

Powyższy kod deklaruje dwie zmienne przy nazwie wynagrodzenia. Pierwsza deklaracja ma przypisaną wartość 100,00, a drugiej deklaracji wartość 1,50. Druga zmienna zacienia lub ukrywa pierwszą zmienną podczas wyświetlania wyniku.

Wynik

The value of salary is :1.50

Podczas shadowing Rust obsługuje zmienne o różnych typach danych.

Rozważmy następujący przykład.

Kod deklaruje dwie zmienne według nazwy uname. Pierwsza deklaracja ma przypisaną wartość ciągu, natomiast drugiej deklaracji jest przypisana liczba całkowita. Funkcja len zwraca całkowitą liczbę znaków w wartości ciągu.

fn main() {
   let uname = "Mohtashim";
   let uname = uname.len();
   println!("name changed to integer : {}",uname);
}

Wynik

name changed to integer: 9

W przeciwieństwie do zmiennych, stałych nie można tworzyć cieni. Jeśli zmienne w powyższym programie zostaną zastąpione stałymi, kompilator zgłosi błąd.

fn main() {
   const NAME:&str = "Mohtashim";
   const NAME:usize = NAME.len(); 
   //Error : `NAME` already defined
   println!("name changed to integer : {}",NAME);
}