Rust 入门 变量与可变性
变量与可变性
- 变量的声明使用
let关键字 - 默认情况下变量是不可以被重新赋值的
- 举个栗子
fn main() {
let x = 5;
println!("x={}", x);
x = 6; // 如果我们对一个不可变得变量进行再次赋值的操作 编译器会抛出一个异常
// ^^^^^^ cannot assign twice to tmmutable variable
println!("x={}", x);
}
- 在声明变量时, 在变量前加上
mut关键字, 就使得变量可以被重新赋值 - 举个栗子
fn main() {
let mut x = 5;
println!("x={}", x);
x = 6;
println!("x={}", x);
}
// > cargo run
// x=5
// x=6
变量与常量
-
常量 (constant) 在绑定值以后也是不可变的
-
常量与不可变的变量有很大的区别
- 常量不可以使用
mut关键字 - 常量永远都是不可变的
- 声明常量必须使用
const关键字 - 声明常量必须提供类型签名
- 常量可以在任何作作用域内声明, 包括全局作用域
- 常量只能绑定到常量表达式中
- 常量不可以使用
-
在程序运行期间, 常量在其声明的作用域内一直有效
-
命名规范: Rust 里的常量使用全大写字母, 每个单词之间用下划线分隔开
-
举个栗子
const MAX_POINTS: u32 = 100000;
fn main() {
const MIN_POINTS: u32 = 1;
}
变量与隐藏
-
在 Rust 程序中可以使用相同的标识符来声明新的变量, 这时之前声明的变量会被隐藏(shadow)
-
在后续的代码中, 这个标识符所代表的就是新声明的这个变量
-
这样做有个好处, 我们用栗子说明
// 例 1
fn main() {
let x = 5;
x = x + 1;
} // 编译出错: cannot assign twice to tmmutable variable
// 例 2
fn main() {
let x = 5;
let x = x + 1;
} // 编译通过 x 的结果为 6
- 隐藏/遮盖 和 mut 是不一样的
- 如果不使用
let关键字, 呢么重新给非mut的变量重新赋值就会导致编译时错误 - 使用
let声明的同名变量, 它的类型可以与之前的不同
- 如果不使用
- 举个栗子
fn main() {
let hello = "hello"; // &str 类型
let hello = hello.len(); // usize 类型
}
如果对我分享的内容感兴趣的话 记得关注我得动态
求推荐 求收藏 求转发 求关注
求推荐 求收藏 求转发 求关注

浙公网安备 33010602011771号