变量、可变性与类型
let / mut、类型注解与影子绑定
本节你将能
用 let/mut 声明变量,并解释不可变默认与影子绑定(shadowing)的区别。
直觉模型
Rust 默认「名字绑到值上且不可改」——不是为了刁难,而是把「可变状态」变成显式决策,减少数据竞争面。
核心要点
- 默认不可变;需要修改时写
let mut x - 类型可推断,也可注解:
let n: i32 = 42 - 影子绑定:用
let x = ...再次绑定同名,可变换类型;不同于mut原地修改
let mut count = 0;
count += 1;
let count = count.to_string(); // shadow:类型变为 String
常见误区
把 shadowing 当成「偷偷可变」——它是新绑定;旧绑定在作用域内被遮住。
动手
写一个不可变绑定再尝试 +=,读报错;再改成 mut 与 shadow 各解一次。
互动
测验:判断场景该用 mut 还是 shadow。
本节小结
下一节用 if/loop/match 搭控制流,并写第一个小函数。