Rust入门-01-变量与可变性
变量(variable)与可变性
-
变量使用关键字
let声明 -
默认情况下变量时不可变的
fn main() { let x = 5; println!("The value of x is: {}", x); x = 6; println!("The value of x is: {}", x); }该程序编译会发生错误
- 不可以给一个不可变的变量赋值第二个值
-
在变量前加上
mut可以使变量可变fn main() { let mut x = 5; println!("The value of x is: {}", x); x = 6; println!("The value of x is: {}", x); }该程序可正常编译
常量(constant)
- 常量使用关键字
const声明- 声明常量时要注明值的类型
- 常量可以在任意作用域内声明,包括全局作用域
- 常量默认且始终不可变
- 命名约定全部字母都使用大写,并使用下划线分隔单词
- 常量只能设置为常量表达式,而不能是函数调用的结果或是只能在运行时计算得到的值。(?
const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;
常量名为 THREE_HOURS_IN_SECONDS
遮蔽(shadow)
- 声明一个和前面变量具有相同名称的新变量,即说第一个变量被第二个变量遮蔽
fn 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);
}
输出内容为
The value of x in the inner scope is: 12
The value of x is: 6
-
遮蔽时要再次使用
let关键字- 不可直接向之前的变量赋值(会发生错误
-
遮蔽即再次使用
let关键字创建了一个新的变量(该变量同样不可变),只是该变量重复使用了相同的名称-
故可以改变值的类型
fn main() { let spaces = " "; //字符串类型 let spaces = spaces.len(); //数字类型 }该程序可正常编译
-
但不可使用
mut关键字更改变量的类型fn main() { let mut spaces = " "; spaces = spaces.len(); //想要将可变变量 }该程序编译会发生错误
-

浙公网安备 33010602011771号