Rust - 常量
常量表示不能更改的值。 如果声明一个常量,那么它的值就不会改变。 使用常量的关键字是const。 常量必须显式键入。 以下是声明常量的语法。
const VARIABLE_NAME:dataType = value;
Rust 常量命名约定
常量的命名约定与变量的命名约定类似。 常量名称中的所有字符通常都是大写。 与声明变量不同,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); //常数的显示值 }
常量与变量
在本节中,我们将了解常量和变量之间的区别因素。
使用 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); }