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

        在上几期中我们学习了 Rust 提供的4中基本单量类型:整数、浮点数、布尔及字符基本数据类型,学习了 if 表达式用于使用条件控制代码流程,我们还编写了一个计算程序用于练习。如果你在完成练习的过程中遇到问题,欢迎通过平台给我们留言。接下来我们开始学习 Rust 提供的复合基本数据类型,也就是可以表示多条数据的类型。

  在 Rust 中提供了俩种复合基本类型:第1个大家在数学课上应该都接触过就是数组(Array),第二个在数学课上应该没接触过叫元组(Tuple);


  我们先来认识下 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];

  这个程序会出现异常,并报一个错误提示我们数组的下标越界了,也就是超出了数组实际的元素数量。

  学习了数组我们再来学习下另一个复合基本类型元组:在 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 月就输出”现在是二月“,依次类

推,想一下该怎么编写呢?!

       相应视频请访问

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容