本文介绍了 Rust 语言中变量和可变性的概念。Rust 默认变量是不可变的,需要使用 mut
关键字才能声明可变变量。此外,文章还讲解了变量遮蔽(shadowing)的用法,它允许在同一作用域内使用相同的变量名而无需使其可变。文章还提出了使用不可变变量的实践方法,并给出了使用 const
定义全局常量的方式。
Rust 以其安全性和性能而闻名,而帮助实现这一点的核心功能之一是其对变量和可变性的独特处理。与许多编程语言不同,Rust 鼓励你编写避免意外更改的代码,从而有助于在错误发生之前防止它们。
在本文中,我们将探讨:
让我们开始为变量赋值
fn main() {
let mut x = 6;
println!("The value of x is: {x}");
x = 6;
println!("The value of x is: {x}");
}
在上面的代码片段中,我将 6 赋值给变量 x。重要的是要将 "mut" 关键字添加到变量以使其可变。
当你运行代码时,你会在终端中看到这个:
Rust 中的可变性
默认情况下,Rust 中的变量是不可变的。这意味着一旦你分配了一个值,你就不能更改它。为了让你能够更改它,你需要将 "mut" 关键字添加到变量。
遮蔽 (Shadowing):
现在我们来谈谈 Rust 中的遮蔽 (shadowing)。
在 Rust 中,遮蔽允许你声明一个与之前的变量同名的新变量,从而在特定作用域内有效地替换旧变量。它允许你重用变量名,而无需使其可变。
在运行时,编译器会选择后者。
例如:你可以在一个作用域内重复使用变量 X 两次。
main() {
let x = 5;
let x = x + 1;
{
let x = x * 2;
println!("The value of x in the inner scope is: {x}");
}
println!("The value of x is: {x}");
}
这是结果
let x = 5;
x
。let x = x + 1;
x
被重新定义为 5 + 1
,所以现在 x = 6
。{ ... }
let x = x * 2;
获取当前的 x
(即 6),并再次将其遮蔽为 6 * 2 = 12
.x = 12
仅存在于块内。x = 12
超出作用域。x
(即 6)仍然有效。当你想要转换一个值而不使变量可变时,遮蔽非常有用。
mut
。const
。Rust 处理变量和可变性的方式鼓励更安全、更可预测的代码。通过使不可变性成为默认设置,Rust 促使你思考变量应该改变,而不是让你不加考虑地这样做。
理解不可变性、可变性和遮蔽之间的区别是掌握 Rust 的所有权模型并编写干净、高效且无错误代码的关键。
- 原文链接: medium.com/@estheraladio...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!