【rust】| 02——语法基础_变量(不可变?)和常量
系列文章目录
【rust】| 00——开发环境搭建
【rust】| 01——编译并运行第一个rust程序
【rust】| 02——语法基础_变量(不可变?)和常量
文章目录
- 1. 变量
- 1.1 变量的定义
- 1.2 试验变量的不可变特性
- 2. 常量
- 2.1 常量的定义
- 3. 覆盖(同名变量)
- 3.1 修改已定义变量的数据类型
- 3.2 1个变量当多个用
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的生命周期最长笑到了最后 生命周期限制着变量
相关文章:
【rust】| 02——语法基础_变量(不可变?)和常量
系列文章目录 【rust】| 00——开发环境搭建 【rust】| 01——编译并运行第一个rust程序 【rust】| 02——语法基础_变量(不可变?)和常量 文章目录 1. 变量1.1 变量的定义1.2 试验变量的不可变特性 2. 常量2.1 常量的定义 3. 覆盖(同名变量)3.1 修改已定义变量的数据类型3.2 1…...
JavaScript实现在键盘输入按键,浏览器进行显示的代码
以下为实现在键盘输入按键,浏览器进行显示的代码和运行截图 目录 前言 一、在键盘输入按键,浏览器进行显示 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择,您可以在目录里进行快速查找…...
精炼计算机网络——物理层(二)
文章目录 前言2.4信道复用技术2.4.1 频分复用、时分复用和统计时分复用2.4.2 波分复用2.4.3 码分复用 2.5 数字传输系统2.6 带宽接入技术2.6.1 ADSL技术2.6.2 光纤同轴混合网(HFC网)2.6.3 FTTx技术 总结 前言 上篇文章,我们初步了解了物理层…...
ChatGPT直接访问,Edge浏览器-免费ChatGPT保姆级教程
人工智能大浪潮已经来临,对于ChatGPT,我觉得任何一个玩互联网的人,都应该重视起来,用起来。但是国内使用需要解决科学上网、注册、收费等繁琐问题。 所以,今天这篇文章就来推荐一个插件,无需任何繁琐操作&…...
1010. 总持续时间可被 60 整除的歌曲
题目: 在歌曲列表中,第 i 首歌曲的持续时间为 time[i] 秒。 返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望下标数字 i 和 j 满足 i < j 且有 (time[i] time[j]) % 60 0。 示例 1&a…...
基于Spring Boot的婚恋系统
在当今的社会,婚恋市场的需求量越来越大,而互联网技术的发展也为婚恋市场的发展提供了更多的机会。基于Spring Boot的婚恋系统正是为了满足市场需求而诞生。 什么是Spring Boot Spring Boot是一个非常流行的Java框架,它可以极大地简化Sprin…...
unity愤怒的小鸟学习制作(一)
基础知识已经差不多了,现在开始模仿敲代码然后在模仿中熟悉软件和语法 视频链接和素材如下:视频 目录 第一部分:游戏逻辑1、新建2D工程2、创建三个场景3、导入游戏需要的资源4、开始编辑02-game4.1 裁切图片4.2 初步编辑4.3 实现小鸟的拖拽4…...
建筑专业可以转行学云计算吗?
当然可行。 在过去的几年中,我们已经帮助很多建筑土木工程专业的同学转行学习云计算技术,尤其是在建筑信息化编程方向。近年来,云计算行业持续发展,涉及到众多领域,如云数据中心、云安全、云存储、云计算机服务等。云…...
网络安全:namp扫描工具
-sP可以扫描一个网段ip以及状态和基本信息,10.1.1.2-3就是扫描2和3这两个ip的主机 -p可以扫描指定ip对应主机的端口号,可以是一个范围 nmap简单扫描:nmap 地址 检查地址是否在线以及open的端口号 在端口开放,不一定可以与对方正常…...
java错题总结(19-21页)
链接:关于Java中的ClassLoader下面的哪些描述是错误的_用友笔试题_牛客网 来源:牛客网 B:先讲一下双亲委派机制,简单来说,就是加载一个类的时候,会往上找他的父类加载器,父类加载器找它的父类加…...
总结846
学习目标: 月目标:5月(张宇强化前10讲,背诵15篇短文,熟词僻义300词基础词) 周目标:张宇强化前3讲并完成相应的习题并记录,英语背3篇文章并回诵 每日必复习(5分钟&#…...
[ubuntu][原创]ubuntu上安装stable-diffusion-webui
下载源码: git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui 一般方法就是: bash webui.sh 但是很遗憾这个国内很难成功,而且很容易陷入困境,因此需要下面方法 核心思想:环境和源码分开安装 下…...
【数组排序算法】
目录 一、数组排序算法1、冒泡排序算法1.1、图形解释1.2、冒泡算法的脚本写法 二、直接选择排序1.1、动态图解1.2、直接选择排序算法的脚本编写 三、直接插入排序1.1、基本思想:1.2、动态图解1.3、直接插入排序的算法脚本编写 四、反向序列算法1.1、反向序列算法的脚…...
制造企业选择库存管理条码工具需要关注哪些点?
Dynamsoft Barcode Reader SDK 一款多功能的条码读取控件,只需要几行代码就可以将条码读取功能嵌入到Web或桌面应用程序。这可以节省数月的开发时间和成本。能支持多种图像文件格式以及从摄像机或扫描仪获取的DIB格式。使用Dynamsoft Barcode Reader SDK,…...
SPI配置
I/O配置 主输出、从输入(MOSI) 主出从入(MOSI )引脚是主器件的输出和从器件的输入,用于主器件到从器件的串行数据传输。当SPI 配置为主器件时,该引脚为输出,当 SPI 配置为从器件时,该…...
给你们讲个笑话——低代码会取代程序员
今天是正经男,我们严肃讨论一下一直以来争吵不休的取代问题。 低代码开发平台,低代码技术会取代开发人员么? 一、背景 低代码开发平台的普及,让很多公司对快速生成应用抱有很大期望。甚至有人认为,低代码开发平台未来…...
Kotlin的出现无疑是为了超越Java而存在
Kotlin的出现无疑是为了超越Java而存在。在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言,背景就是Oracle告Google侵权使用java。众所周知,Java的跨平台的开发语言,得益于虚拟机。我比较关注Kotlin用于Android…...
基于C#开发 B/S架构的实验室管理系统 云LIS系统(MVC + SQLserver + Redis)
一、云LIS系统是将各种样本、免疫、临检、放免、及实验用的分析仪器,通过网络管理和传输实验分析过程中全部数据。对每一专业,实现检验申请、样本采集、样本核收、联机检验、质量控制、报告审核到报告发布的全环节的信息化管理平台。 二、基于B/S架构的云…...
Webpack5有哪些更新?
52. Webpack5有哪些更新? 1. 更快的构建速度 Webpack5 在构建速度方面做出了一些改进,其中最重要的改进是使用持久性缓存。持久性缓存可以将中间结果存储在硬盘上,这些结果可以在下一次构建时被重用,从而减少了构建时间。此外&a…...
前端Vue
前端Vue 基础语法 <div id"div"><h1>This is a data:{{data}}</h1><h1>This is a method:{{method()}}</h1> </div><script>//创建vue实例需要传入配置对象,el指定一个元素作为容器,data保存需要的数据,methods定义函数…...
低噪放(LNA)关键参数在5G通信电路设计中的优化策略
1. 5G时代LNA设计的核心挑战 当你用手机刷短视频时,可能不会想到信号要经历一场"马拉松"——从基站出发,穿过建筑、树木、甚至雨雾,最终到达你掌心大小的设备。而这场马拉松的第一棒选手,就是藏在手机射频前端的低噪声…...
技术文章大纲:用Anaconda驯服AI开发流
技术文章大纲:用Anaconda驯服AI开发流引言简述AI开发的复杂性与环境管理的重要性介绍Anaconda作为Python数据科学和AI开发的集成工具优势Anaconda的核心功能与AI开发适配性虚拟环境管理:隔离不同项目依赖Conda包管理:简化复杂库(如…...
EcomGPT-中英文-7B电商模型在Vue.js前端项目中的集成:打造实时智能客服聊天组件
EcomGPT-中英文-7B电商模型在Vue.js前端项目中的集成:打造实时智能客服聊天组件 最近在做一个电商后台的升级项目,客户提了个需求,希望能在用户端和管理后台都加上一个智能客服,能实时回答商品咨询、订单状态这些常见问题。一开始…...
3个步骤掌握Cats Blender插件:从模型导入到VRChat资产优化
3个步骤掌握Cats Blender插件:从模型导入到VRChat资产优化 【免费下载链接】cats-blender-plugin :smiley_cat: A tool designed to shorten steps needed to import and optimize models into VRChat. Compatible models are: MMD, XNALara, Mixamo, DAZ/Poser, Bl…...
BHVCC AI人工智能大鼠八臂视频迷宫实验步骤 八臂迷宫刺激器
八臂迷宫是一种用于研究动物空间记忆的迷宫模型。它由一个中心区和其周围连接的八条臂组成,在其中一些臂的末端放入食饵或将一些臂施以电击,根据动物的取食或逃避策略(进入每个臂的次数、时间、错能(如动物活动路径、各种时间、次…...
YOLOv8训练Visidron小目标检测数据集YOLO训练结果模型➕数据集可直接使用在读博士,欢迎打扰
YOLOv8训练Visidron小目标检测数据集 YOLO训练结果模型➕数据集 可直接使用 在读博士,欢迎打扰...
第6章 数据类型转换-6.6 转换为元组
通过使用tuple()函数可以将字符串、列表或集合转换为元组。其语法格式如下:tuple([x])其中,参数x为可选参数,表示字符串、列表或集合,如果省略该参数,则该函数返回空元组。示例代码如下:# 资源包\Code\chap…...
10分钟打造你的专属BongoCat:跨平台桌面互动猫咪终极指南
10分钟打造你的专属BongoCat:跨平台桌面互动猫咪终极指南 【免费下载链接】BongoCat 🐱 跨平台互动桌宠 BongoCat,为桌面增添乐趣! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 你是否厌倦了冰冷的电脑界面&a…...
3步让老旧电脑重获新生:RyTuneX系统优化神器完全指南
3步让老旧电脑重获新生:RyTuneX系统优化神器完全指南 【免费下载链接】RyTuneX RyTuneX is a cutting-edge optimizer built with the WinUI 3 framework, designed to amplify the performance of Windows devices. Crafted for both Windows 10 and 11. 项目地址…...
SEO_内容与SEO如何结合?高效优化步骤详解
SEO与内容结合:高效优化步骤详解 在当今数字化时代,搜索引擎优化(SEO)和内容营销无疑是提升网站流量和品牌影响力的关键。SEO和内容的结合并不是一件简单的事情。很多人可能在这两者之间产生困惑,不知道如何在保持内容…...
