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(); // 编译报错
标签:03,常量,mut,作用域,与值,let,可变性,声明,变量
From: https://www.cnblogs.com/UFO-blogs/p/17757269.html