Rust入门-01-变量与可变性
变量(variable)与可变性
-
变量使用关键字
let
声明 -
默认情况下变量时不可变的
fn main() { let x = 5; println!("The value of x is: {}", x); x = 6; println!("The value of x is: {}", x); }
该程序编译会发生错误
- 不可以给一个不可变的变量赋值第二个值
-
在变量前加上
mut
可以使变量可变fn main() { let mut x = 5; println!("The value of x is: {}", x); x = 6; println!("The value of x is: {}", x); }
该程序可正常编译
常量(constant)
- 常量使用关键字
const
声明- 声明常量时要注明值的类型
- 常量可以在任意作用域内声明,包括全局作用域
- 常量默认且始终不可变
- 命名约定全部字母都使用大写,并使用下划线分隔单词
- 常量只能设置为常量表达式,而不能是函数调用的结果或是只能在运行时计算得到的值。(?
const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;
常量名为 THREE_HOURS_IN_SECONDS
遮蔽(shadow)
- 声明一个和前面变量具有相同名称的新变量,即说第一个变量被第二个变量遮蔽
fn main() {
let x = 5;
let x = x + 1;
{
let x = x * 2;
println!("The value of x in the inner scope is: {}", x);
}
println!("The value of x is: {}", x);
}
输出内容为
The value of x in the inner scope is: 12
The value of x is: 6
-
遮蔽时要再次使用
let
关键字- 不可直接向之前的变量赋值(会发生错误
-
遮蔽即再次使用
let
关键字创建了一个新的变量(该变量同样不可变),只是该变量重复使用了相同的名称-
故可以改变值的类型
fn main() { let spaces = " "; //字符串类型 let spaces = spaces.len(); //数字类型 }
该程序可正常编译
-
但不可使用
mut
关键字更改变量的类型fn main() { let mut spaces = " "; spaces = spaces.len(); //想要将可变变量 }
该程序编译会发生错误
-
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战