daily notes[45]
文章目录
- 基础
- references
基础
- 变量是不可变更的。
let x=5;
x=6;
rust认为不可变的变量更安全,更有利于并发性操作。
当然,如果必要,通过加上mut属性,可以设置变量为可变的。
let mut x: u32=5;
x=6;
既然变量有不可变性质,rust为什么还提供了常量的机制。
const x:u32 =5;
- 常量使用 const 关键字声明,并且约定俗成全部用大写字母加下划线命名(如 MAX_POINTS)
- 它不能有mut属性
- 必须为常量显式注明类型。下面这种声明常量的方式是错的
const x=6;
- 常量的值必须在编译时就能完全确定,这一点是和不可变变量的明显区别
下面代码是可以通过编译的
let random_number = rand::random();
但下面代码是错误的。
const random_number: u32 = rand::random();
还有一个类似概念,叫静态变量,它在全局可访问,拥有一个全局的、有固定内存地址的不可变值
static STR_HELLO: &str = "Hello, world!"; // 不可变静态变量
static mut COUNTER: u32 = 0; // 可变静态变量
同一个名字但需要不同类型的值时,可以使用变量遮蔽 (let 重新声明)。
references
- https://www.rust-lang.org/learn/
- deepseek