当前位置: 首页 > news >正文

Rust变量与类型

Rust变量与类型

  • 1. 变量
    • 1.1 不可变型变量
    • 1.2 可变型变量
    • 1.3 常量
    • 1.4 遮蔽(shadowed)
  • 2. 类型
    • 2.1 标量类型
      • 2.1.1 整型
      • 2.1.2 浮点型
      • 2.1.3 布尔类型
      • 2.1.4 字符类型
    • 2.2 复合类型
      • 2.2.1 元组类型
      • 2.2.2 数组类型

1. 变量

  • 变量组成

    • 变量就是给某个值绑定一个名称
    • Rust 是强类型语言,可以自动判断变量类型
    • 变量默认是不可变的(immutable)
    • 声明变量时,使用关键字let
    • 变量名组成:字符串,数字,_组合,但是不能以数字开头
  • 变量声明

    letdeclare_var=1;// 正确的声明let_var_declare=1;// 正确的声明letdeclare4_var=1;// 正确的声明// let 2_var = "a"; 不被允许letdeclare_var1:u32;// 先声明declare_var1=156;// 在赋值letdeclare_var1:&str;// 声明字符串变量的引用declare_var1="abc";// 赋值

1.1 不可变型变量

  • 不可变型变量含义

    • 当变量不可变时,一旦值被绑定一个名称上,你就不能改变这个值
    • 不可变类型变量,不能修改变量值
  • 不可变型变量声明

    letdeclare_var=5;// 此时declare_var 是不可变的// declare_var = 6; // 变量值不允许修改,因此会报错
  • 遮蔽
    定义一个与之前变量同名的新变量, 这种情况称为第一个变量被第二个变量 遮蔽

    // 示例:fnmain(){letx=5;letx=x+1;{letx=x*2;println!("The value of x in the inner scope is: {x}");}println!("The value of x is: {x}");}
  • 移动
    变量1的变量值移动给变量2,变量1及销毁,不可在使用

    // 示例// 移动 declare_var移动到declare_var_1,此时declare_var已被收回,不可在使用letdeclare_var=5;letdeclare_var_1=declare_var;

1.2 可变型变量

  • 可变型变量
    • 因为Rust默认变量是不可变的,哪怎么改变为可变的,使用关键字mut
    • mut是传达一种意图:这个变量的值将会被代码的其他部分改变
    • 可变类型变量,是可以修改变量值的
  • 可变型变量声明
    letmutdeclare_var=5;declare_var=6;

1.3 常量

  • 常量的含义

    • 声明常量时要用const关键字
    • 常量的常量值,不允许修改
    • Rust 对常量的命名约定是全部大写,并用下划线分隔单词
    • 在其声明所在的作用域内,常量在程序运行的整个过程中都有效,适合作为应用领域中的全局值
  • 常量的声明

    constDECLARE_VAR=5
http://www.jsqmd.com/news/661294/

相关文章:

  • ARM平台下atomic_add的底层实现:ldrex/strex指令是如何保证原子性的?
  • XCP协议
  • 从零开始:如何快速构建你的开源四足机器人OpenDog V3终极指南
  • 如何用MATLAB圆形图工具快速可视化复杂网络数据?终极指南
  • AutoMoT:一种基于异步 Transformer 混合模型的端到端自动驾驶统一VLA模型
  • 3步告别网盘限速烦恼:LinkSwift开源下载助手终极指南
  • 从PCIe设备到RDMA网卡:手把手拆解Linux内核中DMA映射的完整流程(含sg_table与pci_map_sg)
  • AudioSeal Pixel Studio基础教程:自定义CSS注入修改Ocean Pixel Blue主题配色
  • MIT App Inventor完整指南:零代码开发Android/iOS应用的终极解决方案
  • 音乐格式转换神器:5分钟轻松解锁加密音频文件
  • 仅剩72小时!2026奇点大会配额管理沙盒环境开放倒计时:手把手带你跑通配额策略AB测试全流程
  • 终极Windows风扇控制指南:5分钟学会FanControl精准调速
  • 手把手教你玩转80C51存储空间:EA引脚配置+中断向量表实战
  • 【JVM深度解析】第25篇:volatile与synchronized深度原理
  • 3分钟解密:如何用Sharp-dumpkey找回丢失的微信聊天记录?
  • 如何用Go-CQHTTP构建你的专属QQ机器人:从零到一的完整指南
  • 云服务中断频发,企业如何平衡公共云可靠性与成本控制?
  • GHelper完整指南:3步告别华硕笔记本臃肿控制软件,体验轻量级极致性能管理
  • 真正让Claude Code效率翻倍的几个玩法
  • 自动化测试用例设计
  • 你的USB2.0设备总掉线?可能是这3个电路设计细节没做好(附EMC整改实测案例)
  • Flutter/React Native跨平台App如何做代码加固?2026年方案盘点
  • KS-Downloader:专业级快手无水印视频下载解决方案
  • Kubernetes StatefulSet 数据持久化实践
  • TCP三次握手流程
  • 雀魂AI助手:你的实时麻将策略分析教练免费使用指南
  • GEMMA混合模型基因组关联分析:技术原理深度解析与高效应用实战
  • Fortify扫描中Access Control: Database问题的3种实战绕过技巧(附代码)
  • 如何在Linux系统快速安装Photoshop CC 2022:完整解决方案指南
  • 终极远程管理神器:electerm如何彻底改变你的工作流?