【rust】| 02——语法基础 | 变量(不可变?)和常量

系列文章目录
【rust】| 00——开发环境搭建
【rust】| 01——编译并运行第一个rust程序
【rust】| 02——语法基础 | 变量(不可变?)和常量
【rust】| 03——语法基础 | 数据类型
【rust】| 04——语法基础 | 函数
【rust】| 05——语法基础 | 流程控制


1. 变量

  通常变量用作存储值。在其他编程语言如C/C++等中变量 默认状态是可以变的。而Rust语言 其拥有安全和简单并发的特性,它的变量默认情况下是 不可变的。让我们深入了解 它所拥有的特性吧。

1.1 变量的定义

rust中变量的定义方式:
关键字let + 变量名;	         // 定义 不可变变量(默认)
关键字let + 关键字mut + 变量名; // 定义 可变变量

在这里插入图片描述
注:rust中 通过let关键字定义变量 可以根据值 自动识别数据类型

1.2 试验变量的不可变特性

1、先定义一个 不可变变量并赋值
	let a = 10;
2、修改变量
	let a = 77;
3、编译看结果

在这里插入图片描述
在这里插入图片描述
可以看到编译报错了 很清楚的提示了 不能修改不可变变量的值
不可变变量名 前多加个 mut 关键字 让其成为可变变量 eg: let mut a=10;

2. 常量

 常量:不可修改的变量。
 在C/C++中常量的定义 关键字const + 数据类型 + 常量名 , 可是这样定义的常量是真正意义的常量吗。结果是我们可以通过操作地址的方式修改了它。呜呜呜 大骗子。
 在rust中定义的常量 也是用 const 。 是正真的常量哦,常量的意义和前面 let定义的不可变变量很相近 但还是是有细微差别的。
区别如下:

const定义的常量 let定义的不可变变量
1、始终不可变 不可加mut 默认不可变 加mut可变
2、定义时需要 +数据类型 无需数据类型 自动识别
3、只能做常量表达式

注意:定义常量时注意这些事项哦

2.1 常量的定义

在rust中定义常量
const + 常量名: + 数据类型 = 值;

注意事项:
1、常量名——约定为 大写字母可加下划线/数字
2、常量名后面有 : 分号
2、需要定义数据类型
tips:rust中的数据类型后面讲哈

在这里插入图片描述

错误例子如下
在这里插入图片描述

3. 覆盖(同名变量)

 在rust中 可以定义同名变量。后面定义的可以覆盖前面定义的变量,如果后者(覆盖者)变量的作用域结束 则前者(被覆盖的变量)重新存在。变量的生命周期决定了谁才是命大的哪一个。只可以变量哦(常量不可以)。

下面通过几个例子了解覆盖的应用场景:

3.1 修改已定义变量的数据类型

在这里插入图片描述
运行结果
在这里插入图片描述
分析

可以看到 发生了2次覆盖 变量的类型也发生了改变 在定义变量是系统自动识别(根据后面的值)到是整型,通过覆盖我们实现了重新定义类型。
在C/C++中我们需要 定义不同类型变量存储不同数据
而在rust语言中 可以通过覆盖的方式实现用一个变量存储不同类型数据
作用:改变变量类型

3.2 1个变量当多个用

在这里插入图片描述
运行结果

A班的人数—— 7
老师的人数——100
语文成绩————111.11
谁笑到了最后 哈哈哈——7

分析

可以看到 1的生命周期最长笑到了最后 生命周期限制着变量

猜你喜欢

转载自blog.csdn.net/weixin_43822014/article/details/130513743