学习笔记,仅此而已
一、变量与可变性
- 声明变量使用
let
关键字 - 默认情况下,变量是不可变的
- 如果希望变量可变,需要添加
mut
关键字
1.1 默认不可变
let name = "zhangsan";
name = "lisi";
上述代码编译会报错
cannot assign twice to immutable variable `name`
1.2支持可变,需要再声明变量的时候加上meut关键字
let mut name = "zhangsan";
name = "lisi";
1.3可变的前提是其值跟初始化定义的类型保持相同,不相同则报错
let mut name = "zhangsan";
name = 111; //
上述代码编译的时候会报错,标识类型不匹配。
expected `&str`, found integer
二、常量
常量定义之后,其值是不可变的,但是其不可变与变量的不可变有区别:
- 常量不能使用mut关键字,因为常量永远不可变
- 声明常量必须使用const关键字,且必须标注类型
- 命名规范:常量必须用全大写字母和下划线
const MAX_POINTS: u32 = 100_000
三、shadow(个人理解成变量的重载)
-
1、rust支持对已经声明的变量进行重写/shadow,只需要重新定义相同变量即可
let count = 3 let count = count + 1 println!("count value is {}", count);
针对 mut声明的变量,也可以重写
let mut count = 3; let count = count + 1; println!("count value is {}", count);
-
2、 shadow支持将变量类型重新定义,而使用mut则不行
let count = 3; let count = "count"; println!("count value is {}", count);
四、最后
变量名定义:多个单词,推荐使用下划线。