变量可变性
- 声明变量使用 let 关键字
- 默认情况 变量不可变 (immediate)
- 可变变量需要在声明时使用 (mut) 关键字
变量与常量
-
常量 (constant) 常量在绑定值之后也是不可变的
- 不可以使用 (mut) 常量永远不可变
- 常量使用 (const) 关键字 他的类型必须被标注
- 常量可以在任何作用域被声明 包括全局作用域
- 常量可以绑定到常量表达式 无法绑定到函数调用的结果或只能在运行时才能计算出的值
-
在运行期间 常量在其声明的作用域内一直有效
-
命名规范 全字母大写 每个单词用 _ 进行分割
隐藏 Shadowing
- 可以使用相同的名字声明新的变量 新的变量就会 shadow 之前的变量
- 在后续的代码中 这个变量名代表的就是新的变量
- shadow 和把变量标记为 mut 是不一样的
- 😅如果不使用let关键字 那么重新给非 mut 的变量赋值就会报错
- 😅而使用let声明的同名新变量 也是不可变的
- 😅使用let声明的同名新变量 他的类型可以与
