Rust 变量与可变性
提示
- 变量声明与基本概念:在 Rust 中,使用
let
关键字声明变量,变量可存储不同数据类型的值,如整数、浮点数和字符串。 - 变量的不可变性与可变性:默认情况下,Rust 的变量是不可变的,不能更改其值。使用
mut
关键字声明的变量是可变的,允许修改其值。 - 变量命名规则和常量:变量名必须以字母或下划线开头,只能包含字母、数字和下划线。Rust 中的常量使用
const
关键字声明,一旦设定,其值不能被更改。
在计算机编程中,我们使用变量来存储数据。例如,
let x = 1;
这里,x
是存储值 1
的变量名称。
我们可以将变量看作是保存信息的容器。
Rust 变量声明
我们使用 let
关键字在 Rust 中声明变量。
let age = 31;
这里,我们创建了一个名为 age
的变量,其值为 31
。
示例:Rust 变量
fn main() {
// 用于存储整数值的变量
let age = 31;
println!("年龄: {}", age);
// 用于存储浮点数的变量
let salary = 342523.23;
println!("薪水: {}", salary);
// 用于存储字符串的变量
let name = "Jackie";
println!("姓名: {}", name);
}
输出
年龄: 31
薪水: 342523.23
姓名: Jackie
在上述示例中,我们创建了三个不同的变量:
age
- 用于存储整数值salary
- 用于存储浮点数name
- 用于存储字符串
注意我们使用了 println!
宏来打印变量。
println!("年龄: {}", age);
要了解更多关于 println!
的信息,请访问 Rust 打印输出。
更改变量的值
默认情况下,Rust 中的变量是不可变的,这意味着一旦定义了变量的值,我们就无法更改它。让我们看一个示例,
fn main() {
// 声明一个值为 1 的变量
let x = 1;
println!("x = {}", x);
// 更改变量 x 的值
x = 2;
println!("x = {}", x);
}
当我们运行这段代码时,我们会得到一个错误。这是因为我们试图将 x
变量的值从 1
更改为 2
。
error[E0384]: 无法对不可变变量 `x` 进行二次赋值
--> main.rs:7:5
|
3 | let x = 1;
| -
| |
| 第一次对 `x` 的赋值
| 建议:考虑将此绑定设置为可变的:`mut x`
...
7 | x = 2;
| ^^^^^ 无法对不可变变量进 行二次赋值
为了解决这个问题,Rust 允许我们创建可变变量。
Rust 中的可变性
我们在变量名称前使用 mut
关键字来创建一个可变变量。例如,
let mut x = 1;
这里,x
是一个可变变量。现在我们可以更改 x
的值。
示例:可变变量
fn main() {
// 声明一个值为 1 的可变变量
let mut x = 1;
println!("x 的值 = {}", x);
// 改变变量 x 的值
x = 2;
println!("x 更新后的值 = {}", x);
}
输出
x 的值 = 1
x 更新后的值 = 2
在这里,您可以看到我们已经成功地改变了 x
变量的值。这是因为我们使用了 mut
关键字定义了 x
变量。
Rust 中变量命名的规则
我们可以使用任何名称作为变量名,但是有一些规则我们应该遵循:
- Rust 是一种区分大小写的语言。因此,小写变量和大写变量是不同的。例如,
age
与 AGE
不同
name
与 Name
不同
- 变量必须以字母或下划线开头。例如,
let age = 31; // 有效且符合 良好实践
let _age = 31; // 有效的变量
let 1age = 31; // 无效的变量
- 变量名只能包含字母、数字和下划线字符。例如,
let age1 = 31; // 有效的变量
let age_num = 31; // 有效的变量
let s@lary = 52352; // 无效的变量
- 如果需要使用两个单词作为变量名,请使用下划线。例如,
let first name = "Jack"; // 无效的变量
let first_name = "Jack"; // 有效的变量
let first-name = "Jack"; // 无效的变量
注意: 始终尽量给变量起有意义的名称。例如,name
、age
、number
比 n
、ag
、nm
更好。
Rust 常量
常量是一种特殊类型的变量,其值不能被更改。我们使用 const 关键字在 Rust 中创建常量。例如,
fn main() {
// 声明一个浮点型常量
const PI: f32 = 3.14;
println!("PI 的值 = {}", PI);
}
输出:
PI 的值 = 3.14
在上面的示例中,我们声明了一个值为 3.14
的常量 PI
。现在,程序中的 PI
值不能被更改。
让我们看看如果我们尝试更改常量的值会发生什么。
fn main() {
// 声明一个常量
const PI: f32 = 3.14;
println!("PI 的初始值: {}", PI);
// 更改 PI 的值
PI = 535.23;
println!("PI 的更新值: {}", PI);
}
当我们运行这段代码时,我们会得到一个错误,因为 PI
是一个常量。
error[E0070]: invalid left-hand side of assignment
--> main.rs:7:8
|
7 | PI = 535.23;
| -- ^
| |
| cannot assign to this expression
注意: 根据 Rust 的命名约定,我们使用大写字母命名常量。