- Rust 教程
- Rust - 首页
- Rust - 简介
- Rust - 环境搭建
- Rust - HelloWorld 示例
- Rust - 数据类型
- Rust - 变量
- Rust - 常量
- Rust - 字符串
- Rust - 运算符
- Rust - 决策
- Rust - 循环
- Rust - 函数
- Rust - 元组
- Rust - 数组
- Rust - 所有权
- Rust - 借用
- Rust - 切片
- Rust - 结构体
- Rust - 枚举
- Rust - 模块
- Rust - 集合
- Rust - 错误处理
- Rust - 泛型类型
- Rust - 输入输出
- Rust - 文件输入/输出
- Rust - 包管理器
- Rust - 迭代器和闭包
- Rust - 智能指针
- Rust - 并发
- Rust 有用资源
- Rust - 快速指南
- Rust - 有用资源
- Rust - 讨论
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); }
广告