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

Rust学习入门--【8】复合类型

复合类型(compound type)

可以将多个不同类型的值组合为一个类型。

Rust中提供了两种内置的复合数据类型:元组(tuple)和数组(array)。

元组类型

元组是一个具有 固定长度 的数据集合 —— 无法在声明结束后增加或减少其中的元素数量。

元素使用逗号分隔放入一对圆括号()中。元组每个位置的值都有一个类型,这些类型不需要是相同的。例如:

let tup: (i32, f64, u8) = (123, 6.5, 1);
// tup.0 等于 123
// tup.1 等于 6.5
// tup.2 等于 1
let (x, y, z) = tup;
// y 等于 6.5

由于一个元组被视作一个单独的复合元素,所以这里的变量tup被绑定到了整个元组上。为了从元组中获得单个的值,我们可以使用模式匹配来解构(destructuring)元组:

fn main() {let tup: (i32, f64, u8) = (123, 6.5, 1);let (x, y, z) = tup;println!("the value of y is: {}", y);   // 输出 the value of y is: 6.6
}

除了解构,我们还可以通过索引并使用点号(.)来访问元组中的值:

fn main() {let tup: (i32, f64, u8) = (123, 6.5, 1);let x = tup.0;let y = tup.1;let z = tup.2;println!("x = {}, y = {}, z = {}", x, y, z); // 输出 x = 123, y = 6.5, z = 1
}

这段程序首先创建了一个元组tup,随后又通过索引访问元组的各个元素,并将它们的值绑定到新的变量上。元素的索引从 0 开始。

数组类型

Rust中的数组:

  1. 数组元素必须是相同的类型;
  2. 数组拥有固定的长度,一旦声明就不能随意更改大小。

在Rust中,将逗号分隔的值放置在一对**方括号[]**内来创建一个数组:

// arr 是一个长度为 5 的整型数组
let arr = [1, 2, 3, 4, 5];

定义数组是可以指定数组类型和大小,如:

//长度为 5 的 i32 数组
let arr: [i32; 5] = [1, 2, 3, 4, 5];

若声明的数组具有相同数值,可以按照如下形式定义:

// 等同于 let d = [3, 3, 3, 3, 3];
let arr = [3; 5];

对于一个数组 arr,可以通过索引访问其中的元素,比如 arr[2] 为数组 arr 中下标为 2 的元素。数组元素下标从 0 开始。例如下面的程序:

fn main() {let a = [1, 2, 3, 4, 5];println!("a[0] = {}, a[1] = {}", a[0], a[1]); // 输出 a[0] = 1, a[1] = 2
}

在这里插入图片描述

http://www.lryc.cn/news/5208.html

相关文章:

  • 【整理六】
  • Ubuntu20.04安装MySQL5.7与远程连接
  • 【yolov5】首次尝试目标检测利用prompt(完整操作流程)
  • 三大指标继续狂飙!重庆啤酒:不惧强弱分化加剧,深耕高端市场
  • MySQL数据库14——更新和删除数据
  • Java面试——MyBatis篇
  • C++的 new 和 delete
  • MySQL 事务原理
  • 软件测试面试自我介绍/项目介绍居然还有模板?我要是早点发现就好了
  • new RegExp的使用
  • 供应商管理软件如何选型 好用的供应商管理软件推荐
  • Python3遍历文件夹提取关键字及其附近字符
  • 「1」线性代数(期末复习)
  • C++7:STL-模拟实现vector
  • 笑死,面试官又问我SpringBoot自动配置原理
  • 分布式缓存服务DCS-企业版性能更强,稳定性更高
  • HTTP基本原理
  • 【云原生】Kubernetes(k8s)最新版本详细保姆级安装教程
  • JVM - 类加载,连接和初始化
  • [carla]关于odometry坐标中的角度坐标系 以及 到地图的映射问题
  • Python 正则表达式
  • spark03-读取文件数据分区数量个数原理
  • 操作系统(day08)内存
  • 11- 聚类算法 (KMeans/DBSCAN/agg) (机器学习)
  • 日日顺供应链|想要看清供应链发展趋势,先回答这三个问题
  • 5守护进程与线程
  • EZ-Cube简易款下载器烧写使用方法
  • sql server安装并SSMS连接
  • Python_pytorch (二)
  • java手机短信验证,并存入redis中,验证码时效5分钟