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

rust学习(四)变量与数据类型

创建项目

  • cargo new variables
  • cd cargo

变量

编写代码

fn main() {let  x: i32 = 12;println!("The value of x is: {x}");x = 6;println!("The value of x is: {x}");
}

这段代码如果在RustRover内会出现错误提示:
image

偶然发现可以查看E0384错误.
ps:如果我们想查看错误示例,可以前往rust官网的错误状态码:https://doc.rust-lang.org/error_codes/E0384.html


修改代码如下:
image

可以正常运行。
image

也就是说,rust变量默认不可变,在某种特定情况下,认为变量可变可以声明mut关键字实现。

常量

通过const关键字可以定义一个常量,常量在定义时必须指定值类型。不允许对常量使用mut关键字,并且常量可以在任何作用域内声明,包括全局作用域。
常量只能被声明为常值表达式,不可以是其他任何只能在运行时计算出的值。
声明它的作用域之中,常量在整个程序生命周期中都有效。

image
image

遮蔽

rust允许我们通过let关键字多次重新声明同名的变量,可以不用考虑命名的困扰。
image

第二个变量遮蔽了第一个变量,任何使用该变量名的行为中都会视为是在使用第二个变量,直到第二个变量自己也被遮蔽或第二个变量的作用域结束。


为了书写数据类型的相关代码,我们使用cargo重新创建一个项目

  • cargo new data_types
  • cd data_types

数据类型

rust中每一个值都有一个特定的数据类型
两类数据类型: 标量和复合类型

标量类型

rust中标量类型代表一个单独的值。rust中有四种基本标量类型:整型、浮点类型、布尔类型和字符类型。

整型
整型是一个没有小数的数,可以分为有符号整数和无符号整数。rust中i表示有符号;u表示无符号。以无符号数为例,例如u8表示8位无符号整数,以此类推有u16,u32,u64,u128,usize。usize的值与操作系统有关,如果是32位操作系统那么就是32位,如果是64位操作系统,那么就是64位。有符号数也是类似i16,i32,i64,i128,isize.默认声明一个整型变量它的类型是i32
在计算机中,有符号数都采用补码的形式表示。
image

note:对于表示范围(如8位无符号整数的表示范围为0255;8位有符号整数的表示范围为-128+127),如果学过计算机组成原理,这部分就十分简单了。

浮点类型
提到浮点数,计算机组成最经典的就是IEEE-754标准。现代计算机中浮点数默认都采用此标准。
rust中的浮点类型有f32f64,默认类型是f64
f32 是单精度浮点数,f64 是双精度浮点数。对应计算机组成原理里面floatdouble类型。

f32为例,32位中第1位为符号位,中间8位数为阶码(移码表示,移码偏移量为127),后面23位数为尾数(原码表示)。
ps:这是复习考研时间的内容,由于这里学的是rust就不过多阐述了嘻嘻!

image


布尔类型
rust中布尔类型的值类型关键字为bool。值有两个truefalse
image

字符类型
Rust 的 char 类型是语言中最原始的字母类型。用单引号声明 char 字面值,而与之相反的是,使用双引号声明字符串字面值
image

复合类型

复合类型可以将多个值组合成一个类型。rust的组合类型有元组tuple和数组array

元组
元组长度固定,一旦声明其长度不会增大也不会缩小。使用包含在圆括号中的逗号分隔的值列表来创建一个元组。元组中的每一个位置都有一个类型,而且这些不同值的类型也不必是相同的。
image

数组
rust中数组内每个元素的类型必须一致,且数组的长度是固定的。

通过let来定义数组: let variable_name: [data_type,size] = [element1,element2,...]

访问数组元素通过数组下标来实现,和其它语言一样,数组下标默认从0开始。

    // 数组中每个元素的值类型都必须一致// rust中数组的长度是固定的// 数组的类型:[data_type;size] -->  [i32; 5]  i32表示每个元素的类型,分号之后的数字代表数组内的元素个数let _arr_data: [i32; 5] = [1, 2, 3, 4, 5];// 确保总是有固定数量的元素时,数组非常有用let months: [&str; 12] = ["January","February","March","April","May","June","July","August","September","October","November","December",];// 通过数组下标访问数组元素,下标从0开始let jan = months[0];println!("The value of jan is: {jan}");// 通过在方括号中指定初始值加分号再加元素个数的方式来创建一个每个元素都为相同值的数组let _arr = [3;4]; // 变量名为 arr 的数组将包含 4 个元素,这些元素的值最初都将被设置为 3

由于参阅的是书籍内容,示例并没有写太多,需要更多例子求助AI也可以嘿嘿!

http://www.zskr.cn/news/37689.html

相关文章:

  • 基于有限体积法(FVM)的MATLAB流体力学求解程序
  • WC 2026 备战记录
  • JSR 303 常用注解及示例
  • vmware fusion:windows会自动挂起
  • .NET周刊【10月第3期 2025-10-19】
  • 基于Opengauss的餐厅管理系统
  • 2025 年 11 月杀虫公司最新推荐,聚焦资质、案例、售后的五家机构深度解读!
  • 从图像到文本:手写体汉字识别的技术路径与产业赋能
  • 2025 年 11 月伸缩门厂家最新推荐,产能、专利、环保三维数据透视
  • [2025.11.2 雨集] 你这一生都不会忘记我
  • 每日一题:Leet 2257. 统计网格图中没有被保卫的格子数
  • SQL新特性/SQL语言增强以及JSON新特性
  • 使用netfilter_queue重定向IP数据包
  • 2025年11月专业太空舱民宿品牌推荐排行:优质厂家对比评价
  • 2025年11月太空舱民宿推荐榜单:权威对比与选择指南
  • 2025年11月太空舱民宿品牌排行:优质工厂生产资质与服务全解析
  • 2025年11月太空舱原材料推荐评价:有实力供应商排行与采购建议
  • 2025年11月太空舱原材料靠谱榜单:实力品牌横向对比报告
  • 2025年11月节油重卡品牌榜:供应厂家口碑与性能排名
  • 2025年11月节油重卡供应厂家推荐:口碑实力综合排名
  • 2025年11月太空舱出口评测榜单:深度解析专业厂家服务能力
  • 2025年11月福田欧曼重卡销量榜:供应厂家口碑排行对比
  • 2025年11月打印纸正规生产厂家榜:比较有实力工厂排名对比
  • 2025年11月福田欧曼重卡销量榜:靠谱厂家正规排行深度评测
  • 2025年11月福田欧曼重卡销量靠谱榜:生产厂家排名与全品系销量评测
  • 2025年福田欧曼重卡权威解析:全场景技术路线推荐与风险盘点
  • 2025 年 11 月虎头鲨/沙塘鳢/呆子鱼/虾虎鱼鱼苗养殖厂家推荐排行榜,优质鱼苗与养殖技术深度解析
  • 2025年10月精益管理咨询公司推荐:实力榜单对比
  • 2025年11月靠谱摩擦焊机品牌排行:实力生产厂家对比评价
  • 2025年10月精益管理咨询公司推荐榜:实力评测