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);
}