目录
变量
let
声明变量使用let关键字
默认情况下变量是不可变的
例子1:
fn main() {
let x = 10;
println!("此处声明的变量:{}",x);
}
输出:此处声明的变量:10
当我们对一个不可变变量再次赋值时,编译器会直接报错,强制运行时,会编译不通过,并提示不可变变量不可二次赋值
例子2:
fn main() {
let x = 10;
println!("此处声明的变量:{}",x);
x = 20;
println!("重新赋值后的变量:{}",x);
}
输出:
error[E0384]: cannot assign twice to immutable variable `x`
--> src/main.rs:4:5
|
2 | let x = 10;
| -
| |
| first assignment to `x`
| help: consider making this binding mutable: `mut x`
3 | println!("此处声明的变量:{}",x);
4 | x = 20;
| ^^^^^^ cannot assign twice to immutable variable
mut
mut关键字是把变量标记为可变变量
例子3:
fn main() {
let mut x = 10;
println!("此处声明的变量:{}",x);
x = 20;
println!("重新赋值后的变量:{}",x);
}
输出:
此处声明的变量:10
重新赋值后的变量:20
常量(constant)
规范:字母圈大写,多个单词用下划线隔开,例如:MAX_VALUE、MIN_VALUE
例子4:
const MIN_VALUE:u32 = 100000000;
const MAX_VALUE:u32 = 100_000_000;
常量在绑定值以后是不可变的,但是它与不可变的变量又有所不同
1、常量不可使用mut关键字
2、声明常量用const关键字,并必须标注类型
3、常量能在任何作用域声明
4、常量只能绑定在常量表达式,无法声明函数运行结果和程序运行中的值
Shadowing(隐藏)
可以使用相同的命名覆盖掉前面声明的变量的值
例子5:
fn main() {
let x = 10;
println!("此处声明的变量:{}", x);
let x = "你好呀,我是赛利亚";
println!("重新声明的变量:{}", x);
}
输出:
此处声明的变量:10
重新声明的变量:你好呀,我是赛利亚
注:同名变量可以不同类型