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
    }
    
  • 常量 vs 变量

    在本节中,我们将了解常量和变量之间的区别因素。
    • 常量是使用 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);
    }