Rust - 常量



常量表示不能更改的值。如果您聲明瞭一個常量,則其值無法更改。使用常量的關鍵字是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);
}

上面的程式碼聲明瞭兩個名為 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);
}
廣告