03_变量与值可变性
rust定义变量
-
let关键字
用于声明变量:let (mut) 变量名 -
变量值是否改变
默认变量值不可变(Immutable),在声明变量时加上mut才为可变变量。
let x = 5; x = 6; let mut y = 6; y = 8; let mut y: u32 = 9;
第二行编译报错,上边变量声明时未标注类型的,默认是i32类型。
rust定义常量
常量(constant),常量在绑定值以后一直不再可变。使用const声明。
程序运行期间,常量在声明作用域内一直有效。
常量与不可变变量的区别
常量不可用mut,且永远不可变
常量声明使用const,且类型必须被标注
常量可在任何作用域内声明,包括全局作用域
常量声明时只可赋值(绑定)为常量表达式,等号右侧不能是函数调用,也不能是运行时才能计算出的值
常量命名规范:Rust里常量使用全大写字母,每个单词之间用下划线分开。
如:
const MAX_NUM: u32 = 100_000;
Shadowing(隐藏)
可用相同名字声明新的变量,新的变量会shadow(隐藏)之前声明的同名变量。
如:()
let x = 5; let x = x + 1; let y = x; let x = "9";
前后x是两个变量,第二行的x隐藏了第一行的x变量,第三行的x是第二行的x=6。
shadow和mut的区别
若不用let,重新给非mut变量赋值报错
使用let声明同名变量,也是不可变的
使用let声明同名新变量,类型可与上一个不同
let s = "test"; // s是str类型 let s = s.len(); // s为usize类型了 let mut t = "test"; t = t.len(); // 编译报错
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战