常量表示无法更改的值,如果声明一个常量,那么它的值就不会改变,使用常量的关键字是 const ,常量必须明确输入,以下是声明常量的语法。

const VARIABLE_NAME:dataType=value;

常量命名

常量的命名约定类似于变量的命名约定,常量名称中的所有字符通常都是大写的,与声明变量不同, let 关键字不用于声明常量。

在下面的示例中,我们在Rust中使用了常量-

fn main() {
   const USER_LIMIT:i32=100;    //声明一个整数常量
   const PI:f32=3.14;           //声明一个浮点常量

   println!("user limit is {}",USER_LIMIT);  //常数的显示值
   println!("pi value is {}",PI);            //常数的显示值
}

常数 VS 变量

在本节中,我们将学习常量和变量之间的区别因素。

  • 使用 const 关键字声明常量,而使用 let 关键字声明变量。

  • 变量声明可以选择具有数据类型,而常量声明必须指定数据类型,这意味着const USER_LIMIT=100将导致错误。

  • 使用 let 关键字声明的变量默认情况下是不可变的,但是,您可以选择使用 mut 关键字对其进行改变,常量是不可变的。

  • 常量可以在任何范围内声明,包括全局范围,这使它们对于代码的许多部分都需要知道的值很有用。

变量和常量

Rust允许程序员使用相同的名称声明变量,在这种情况下,新变量将覆盖先前的变量。

让我们通过一个示例来理解这一点。

fn main() {
   let salary=100.00;
   let salary=1.50 ; 
   //读取数据
   println!("The value of salary is :{}",salary);
}

上面的代码通过名称salal声明了两个变量,第一个声明的值是100.00,第二个声明的值是1.50,第二个变量在显示输出时遮盖或隐藏第一个变量。

The value of salary is :1.50

考虑以下示例。

该代码使用名称 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);
}

参考链接

https://www.learnfk.com/rust/rust-constant.html