【rust】| 03——语法基础 | 数据类型

news2024/11/24 17:22:15

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


文章目录

  • 前言
  • 数据类型
  • 1. 标量类型(scalar)
    • 整型
    • 浮点型
    • 布尔型
    • 字符型
  • 2. 复合类型(compound)
    • 2.1 元组
    • 2.2 数组

前言

 Rsut和C++一样都是静态类型语言
 静态语言:必须在编译时知道所以变量的类型。
 因此,我们需要在使用变量前必须声音数据类型。
 下文就介绍 Rust语言中有那些数据类型

数据类型

Rust中数据类型分为两类:
1、标量类型(scalar)
2、复合类型(compound)

1. 标量类型(scalar)

标量:表示单个值类型的。Rust中标量类型分为四种:整型、浮点型、布尔、字符。这几种和C/C++中是类似的。

整型

整型分为无符号整型和有符号整型。
在这里插入图片描述
和C/C++中一样 当某类型数据超过范围会溢出
但Rust中有显式处理溢出的方法 后面会介绍。

整型数字的编写形式比较灵活
1、可以使用类型后缀来指定类型 如:byte型 可以 64u8 表示
2、数字可以用 _分隔 让数字便于阅读 如: 18888 可以 18_888表示
3、可表明数字的进制 如下
在这里插入图片描述
默认整型是 i32类型
在这里插入图片描述

浮点型

Rust中浮点型数据分为两种:
1、f32 单精度浮点数 ——32位
2、f64 双精度浮点数 ——64位
默认浮点型是 f64
在这里插入图片描述

布尔型

和其他语言中一样 只有两个值 == 真 true 和 假 false== 占1个字节大小。
在这里插入图片描述

字符型

Rust中字符型( char ) 占四个字节大小
在这里插入图片描述

2. 复合类型(compound)

复合类型即:多个值组成一种类型。
Rust中有两种原始复合类型:元组 和 数组。

2.1 元组

元组就是将多种类型组成一个复合类型。它在声明后 长度是固定的。类似C语言中数组 定义后 长度不可改变。

元组类型的定义: let + 元组名 : (类型1,类型2,类型n)

在这里插入图片描述
每个元素有自己的类型

元组中元素访问 元素名.元素号

在这里插入图片描述

和C/C++中访问数组中元素 类似 都是从 0 下标开始 表示第一个元素 从左到右

元组 转换为 独立变量 let (变量1,变量2,变量n) = 元组

在这里插入图片描述
需要注意 通过该操作转换为独立变量的话 元组内有多少个 就转换为多少个变量 少了或多了都不可以

2.2 数组

数组中每个元素类型都是相同的。数组大小是固定的。

定义数组 如图所示

在这里插入图片描述

访问数组元素 索引从0开始

在这里插入图片描述
访问数组的操作 在Rust中 会有一个检测 这个检测是在运行时检测的。我们在通过索引访问数组时 Rust 将检查我们指定的索引是否小于数组长度 。如果索引大于或等于长度 Rust会提示 并立即退出。这一检测机制很好的 让我们避免了数组越界访问无效地址这种问题。
这一简单操作展现了 Rust语言内存安全特性中的一个处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/508321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅析S32K324的时钟树

S32K3XX系列的时钟树梳理 如下图为S32K3XX系列的时钟树图: 一、时钟源 时钟源说明FIRC快速内部RC时钟源SIRC慢速内部RC时钟源FXOSC快速外部晶振时钟源SXOSC慢速外部晶振时钟源 S32K3系列的mcu有4个时钟源如上表。 二、FIRC(快速内部RC时钟源&#…

excel中英文互译

在excel运行宏时弹出下面的提示: 无法运行“XXXXX”宏。可能是因为该宏在此工作薄中不可用,或者所有的宏都被禁用的错误提示 解决办法: 1、点击“文件”选项卡; 2、在选项卡界面窗口中选择“选项”按钮; 3、在“选项…

[效率工具] [VS Code] 一文玩转VSCode下的Markdown笔记

简介 Markdown 常用工具 : 各种云笔记优点:云备份,多设备同步,缺点是敏感字,图床不可外链等等。 本地常用IDE又sublime,Typora等等。这样造成本地会安装很多ide。像Typora后期也收费等等。所见所得等等问题&#xff0…

Nacos配置管理、配置热更新、配置共享和搭建nacos集群

目录 1.Nacos配置管理 1.1.统一配置管理 1.1.1.在nacos中添加配置文件 1.1.2.从微服务拉取配置 1.2.配置热更新 1.2.1.方式一 1.2.2.方式二 1.3.配置共享 1)添加一个环境共享配置 2)在user-service中读取共享配置 3)运行两个UserAp…

面向对象【类的实例化与对象内存解析】

文章目录 类的概念对象的概念面向对象的三步骤对象的内存解析JVM 内存结构划分对象内存分析 类的概念 具有相同特征的事物的抽象描述,是抽象的、概念上的定义。 对象的概念 实际存在的该类事物的每个个体,是具体的,因而也称为实例。 面向…

树莓派之人脸识别与智能家居

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 树莓派加上摄像头之后就可以拍照、录视频等各种功能了,这样做一个树莓派相机已经是非常简单的事情了。我们在这里做一个简单的人脸区域检测的功能实验,然后我们在下一个实验让树莓派来控制风扇转动。发…

电机转矩、功率、转速之间的关系及计算公式

电机转矩、功率、转速之间的关系及计算公式 REF 电机功率和转矩、转速之间的关系 - 知乎 电机转矩、功率、转速、电压、电流之间关系及计算公式 - 豆丁网 电机转矩、功率、转速、电压、电流之间关系及计算公式 - 豆丁网 【技术】电动机功率、转速、扭矩的关系 实际上应该是…

系统分析师之项目管理(十七)

一、范围管理 范围管理:确定项目的边界,即哪些工作是项目应该做的,哪些工作不应该包括在项目中。 二、时间管理 时间管理:也叫进度管理,就是用科学的方法,确定目标进度,编制进度计划和资源供应计…

第十章 聚类算法

聚类算法 算法概括聚类(clustering)聚类的概念聚类的要求聚类与分类的区别 常见算法分类聚类算法中存在的问题 距离度量闵可夫斯基距离欧式距离(欧几里得距离)曼哈顿距离切比雪夫距离皮尔逊相关系数余弦相似度杰卡德相似系数 划分…

将本地和服务器图片上传至七牛云

少量图片上传七牛云 如果是少量图片时推荐手动上传 多张图片上传七牛云 如果是多张图片较大时,推荐使用七牛云官方提供工具(qshell) qshell 链接地址:命令行工具(qshell)_实用工具_对象存储 - 七牛开发者中心 (qiniu.com) 我们项目常用于服务器&…

JVM系列-第6章-方法区

方法区 栈、堆、方法区的交互关系 从线程共享与否的角度来看 ThreadLocal:如何保证多个线程在并发环境下的安全性?典型场景就是数据库连接管理,以及会话管理。 栈、堆、方法区的交互关系 下面涉及了对象的访问定位 Person 类的 .class …

BM61-矩阵最长递增路径

题目 给定一个 n 行 m 列矩阵 matrix ,矩阵内所有数均为非负整数。 你需要在矩阵中找到一条最长路径,使这条路径上的元素是递增的。并输出这条最长路径的长度。 这个路径必须满足以下条件: 对于每个单元格,你可以往上&#xff…

万字长文详解如何使用Swift提高代码质量 | 京东云技术团队

前言 京喜APP最早在2019年引入了Swift,使用Swift完成了第一个订单模块的开发。之后一年多我们持续在团队/公司内部推广和普及Swift,目前Swift已经支撑了70%以上的业务。通过使用Swift提高了团队内同学的开发效率,同时也带来了质量的提升&…

工服智能监测预警算法 yolov8

工服智能监测预警系统通过yolov8网络模型算法,工服智能监测预警算法对现场人员未按要求穿戴工服工装则输出报警信息,通知后台人员及时处理。Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测,核心思想就是利用整张图作为网络的输入&am…

Deepmotion: AI动作捕捉和3D身体追踪技术平台

【产品介绍】 Deepmotion是一家专注于使用AI技术进行动作捕捉和3D身体追踪的公司。自2014年成立以来,Deepmotion一直致力于让数字角色通过智能的动作技术变得栩栩如生。 Deepmotion提供了多种与动作数据相关的服务,其中最引人注目的是Animate 3D&#xf…

Java 如何在 Array 和 Set 之间进行转换

概述 在本文章中,我们对如何在 Java 中对 Array 和 Set 进行转换进行一些说明和示例。 这些示例通过使用 Core Java 和一些第三方的转换工具,例如 Guava 和 Apache Commons Collections。 更多有关的文章,请访问:Java - OSSEZ 相…

笔试强训--Day2

1.题目: 排序子序列 排序子序列https://www.nowcoder.com/questionTerminal/2d3f6ddd82da445d804c95db22dcc471?orderBy HotValue1&page1&onlyReferencefalse 【题目解析】: 本题要求解的是排序子序列,排序子序列为非递增或者非递减&#xff0…

空气炸锅CE认证/FCC认证/PSE认证/SAA认证以及METI备案

空气炸锅属于厨房小电器,出口到各个亚马逊站点的空气炸锅建议做如下认证: 美国站:FCC认证,UL测试,FDA测试,加州65测试等。 欧洲站:CE认证,RoHS认证。 德国站:GS认证。 …

【沐风老师】一步一步教你在3dMax中进行UVW贴图和展开UVW的方法

将简单或程序材质应用于对象并不难。但是当表面需要在其上显示某种纹理时,它会变得更加复杂。任何纹理贴图都放在材质的 Diffuse 插槽中,但渲染的结果可能无法预测。这就是为什么我们需要了解 3DMAX 如何将纹理应用于 3D 对象,什么是 UVW 贴图…

【STL】模拟实现vector(详解)

文章目录 前言vector的模拟实现一,搭建框架二,实现构造函数三,构造的其他方式传统写法1.拷贝构造2. 重载赋值操作符3. 使用迭代器构造4. 初始化为N个val的vector 现代写法1. 拷贝构造2. 赋值重载 四,实现vector相关函数1. reserve…