不管学什么语言好像都得从变量开始,不过只需要懂得大概就可以了。
但在Rust里不先把变量研究明白后面根本无法进行…
变量绑定
变量赋值❌
变量绑定✔️
Rust中没有“赋值”一说,而是称为绑定。
int a = 3; //C中的变量赋值
a = 3; //python中的变量赋值
var a = 3; //JavaScript中的变量赋值
let foo = 3; //Rust中的变量绑定
这里就涉及 Rust 最核心的原则——所有权,简单来讲,任何内存对象都是有主人的,而且一般情况下完全属于它的主人,绑定就是把某个内存对象绑定给一个变量,让这个变量成为它的主人(在这种情况下,该对象之前的主人就会丧失对该对象的所有权)。
变量的可变性
Rust 的变量在默认情况下是不可变的。这是 Rust 语言的特性之一,有助于提升安全和性能。而通过 mut 关键字,即可以指定某个变量为可变的。
// 导入 io 模块,其中包含了处理输入输出的标准库
use std::io;
fn main() {
// 声明不可变变量 foo,开辟内存对象(值为1)并绑定给它
let foo = 1; //编译器进行类型推断,这里推断出是int类型
// 声明另一个不可变变量 bar
// 开辟新的内存对象(并将 foo 绑定的值 1 拷贝进去),然后绑定给bar
// 不可变变量在定义时(内存对象在开辟时)就需要进行值的绑定
let bar = foo;
// 检查 bar 绑定值是否为数字 1
if bar == 1{
这里的 println! 整体是一个宏,功能为打印一行文字
println!("绑定成功")
}
}
在上面的例子中,变量 foo和 bar 均为不可变变量,一旦为它绑定值,就不能再进行修改。
选择可变还是不可变,更多的还是取决于实际使用场景,例如不可变可以带来安全性,但是丧失了灵活性和性能,而可变变量最大的好处就是使用上的灵活性