学习新时代编程语言Rust-7复合基本数据类型

我只是一个虾纸丫 提交于 2019-11-29 14:25:06

在上几期中我们学习了 Rust 提供的4中基本单量类型:整数、浮点数、布尔及字符基本数据类型,学习了 if 表达式用于使用条件控制代码流程,我们还编写了一个计算程序用于练习。如果你在完成练习的过程中遇到问题,欢迎通过平台给我们留言。接下来我们开始学习 Rust 提供的复合基本数据类型,也就是可以表示多条数据的类型。
在 Rust 中提供了俩种复合基本类型:第1个大家在数学课上应该都接触过就是数组(Array),第二个在数学课上应该没接触过叫元组(Tuple);
data type
我们先来认识下 Rust 中的数组,在 Rust 中可以是使用中括号括表示一个数组像这样:

        let a = [1, 2, 3, 4, 5];

中括号里的元素用逗号分隔,这样就声明了一个数组类型的变量a,它的值为包含1 ,2,3,4,5 的数组。
我们也可以在变量a的后面使用冒号声明a的类型如:

       let a:[i32; 5] = [1,2 ,3,4,5]

其中 i32 表示数组里包含的元素的类型,5表示数组的长度也就是这个数组可以存放的元素条数。从这个定义形式我们可以看出,1.数组里的元素类型必须一致,要么都是 i32, 要么都是字符串。2.数组的长度是在创建数组时已经固定的。我们在编写代码的时候很多时候并不知道需要存储的元素的个数,怎么办呢?这个时候我们可以使用 Vector, 在编写计算程序的时候使用了一个 Vector 类型的变量存储用户输入的命令行参数, Vector 就是在 Rust 提供的基本数据类型数组的基础上增加可变长度的功能,以应对在某些场景下需要存储不定数量元素的需求。 Vector 是基于数组开发的,这也是为什么数组属于基本数据类型而 Vector 不是。跟 vector 一样我们可以使用下标获取数组里的元素,下标从0开始代表数组里的第1个元素,例如:

  let first = a[0];

变量 first 的值为1也就是数组a的第1个元素。

  let end = a[4];

变量 end 的值为5也就是数组 a 的第5个元素。

如果我们给的下标超过了数组的长度会怎么样的?!如:

   let n = a[6];

这个程序会出现异常,并报一个错误提示我们数组的下标越界了,也就是超出了数组实际的元素数量。
  index out of bounds
学习了数组我们再来学习下另一个复合基本类型元组:在 Rust 中可以使用小括号表示一个元组,跟数组的中括号区别开来。例如:

  let tup = (500, 8.8, 1);

跟数组一样,括号中的元素也是用逗号分隔,跟数组不一样的是元组中的元素可以是不同类型的,你可以把整数和字符同时放到一个元组里。我们也可以在变量的后面使用冒号小括号的方式为元组声明类型,例如:

  let tup:(i32,f64,u8) = (500, 8.8, 1);

跟数组使用下标获取数组中元素一样元组也是使用下标,不一样的是数组使用中括号而元组使用点,就像这样:

        let first = tup.0 ; // 变量 first 的值就是 500 了,也就是元组 tup 的第一个元素

        let end = tup.2 ; // 变量 end 的值就是 1 了,也就是元组 tup 的第 3 个元素

学习了复合基本类型我们来做个练习题:

获取当前的月份,如果是 1 月就输出“现在是一月 ”,如果是 2 月就输出”现在是二月“,依次类推,想一下该怎么编写呢?!

免费进群交流

KeepLearning

内容根据视频整理,相应视频内容可访问

51cto学院:
51cto
网易网校:
网易网校

Others will think of you only as important as you think you are.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!