00:00
好,同学们,这一节呢,给大家介绍最后一个复合类型,也就是数组叫AA啊,那么现在呢,我们先看一下A的定义,在我们的文档里面。呃,看一下数组好,那么数组呢?它其实是由相同类型的值构成的一个有序序列。啊,那么这里呢,我直接给大家敲代码来演示一下。好,回到我们的web UI这里呢,我重新登录一下。好,现在呢,我把这个代码给删掉啊,这是上一节代码。现在呢,我先声明一个变量A,然后用等于号来进行赋值,哎,此处呢我们使用中括号啊,中括号里面呢写我们的数组,这次呢,我们写的不是间值,对,而是一个一个元素啊,注意元素的类型呢,还必须得是一样的啊,此处呢我用逗号来分隔啊,来对这个元素进行一个分隔啊,可以看到我现在呢来敲A。
01:01
BC3个字符啊,那么这样呢,就是一个包含了ABC3个字符的一个数组啊,那么现在呢,我还是把A这个数组呢,传给我们的display函数,然后呢,再让这个display的返回值呢传给我们的表,现在呢,我们去展示一下,点击submit。好啊,点击VI data查看原始数据啊,可以看到呢,我们现在有一个这样的ABC3个字符的数组。现在呢,哎,我这里不放字符串了,我放一个串了,比如说我现在先放一个第一个record。好,第一个record呢,它有一个建队叫name,然后值呢叫Tony toy,然后呢再加一个建筑队叫age,然后值呢叫18,好,哎,接下来呢,我再放一个record。啊,这个呢,第一个建筑队呢,还是name,哎,这个名字呢,就叫叫杰克吧J。
02:05
好,接下来呢,我再敲一个逗号,哎,可以看到,再敲一个A,然后冒号18,好,那么现在可以看到呢,我现在声明了一个包含两个record的数组,我点击submit。好,可以看到呢,这一段代码呢,是可以正常跑通的,但是如果把这个age冒号18给它删掉。我给它删掉好啊,再次点击提交,可以看到这里呢,这里面这个语法的检查呢,已经告诉你我们出错了,说这个record呢,第二个record了。啊,它呢缺少一个啊,名称为的label,也就是少一个,哎,这个键值呢,为age的键值队,接下来呢,我点击可以看到啊,那这里说呢,就是刚才我们说的这个问题啊,那么接下来。啊,我呢再弄一个变量B啊,再弄个变量B,然后呢,把这个record呢给他接过来。
03:04
好,我现在在输出的这个地方,我把discipline给删掉。哎,我把这个币呢,直接放进来,点击提交。好,可以看到呢,这里报错了,说我们的record类型呢,并不能作为一个一个字段一个列的类型来进行使用,但是这里呢,我们需要注意我们这个啊,这个record的类型是什么?哎,可以看一下。呃,我们想呢,它可能是一个record类型,但是呢,你可以看到这里呢,有更明确的类型定义,它的类型呢,实际上是我们说的,哎,一个里面包含内这个键,而且呢,值的类型为string的那么一个record。哎,那么了解我们Java这种编程语言的同学呢,哎,可能知道,诶这种东西叫什么呢,叫做泛型。哎,所以呢,我们之前的这个A啊,之前这个A里面的record它是什么类型呢?啊,它的类型呢,其实你说它呢是record也不是错啊,但是呢,它还有更具体的一个规定,实际上呢,它是啊里面包含一个name,然后呢类型为string啊,值的类型为string,而且呢,呃,还包含一个建支队啊这个键呢叫age,然后呢,它的值的类型为int的,哎,这么一个record类型,哎所以说呢,啊你不能认为啊A是record类型,那B呢也是record类型,他们呢就是一个类型啊,实际上呢,这里有更明确的泛型。
04:34
好,这里呢,借助我们的类型相同的这么一个约束呢,给大家介绍了一下,哎,所谓类型相同,其实呢,是要求泛型也要相同的一个,哎,那么一回事,呃,接下来呢,我们继续讲这个数组的操作,我把平清一下。好,呃,那么我们看啊,现在我把这个record给删掉,呃,我再去说明一个数组啊,这次这个数组里面呢,有一逗号二逗号三,哎,那么三个整数的元素啊,接下来我们可以看一下,先点击sum,哎,可以说啊,这里呢说我们这个B变量没有被指定啊,把它换成A,哎,点击submit。
05:14
好,可以看到这个复合类型呢,哎,你可以可以看到啊,这里面啊,这里面这个类型,哎,它不是一个数组,你可以看到这里没有说是二二啊,它呢是一个中括号二。也就是说,哎,是一个其内部元素为int类型的数组啊,啊,就说它这个定义叫内部元素为int类型,哎,这个太复杂了啊,把这个语戏重新整理一下,包含int。类型元素的数组,哎,才是我们这一个A的类型的定义,而不仅仅是数组啊,而不仅仅是数组啊,需要带上泛型才是它完整的类型定义。好,现在呢,给大家说一下如何去访问数组里面的元素啊,这里呢,我用一个变量B啊,再加上一个等于号来进行赋值啊,此处呢,我对A进行取值啊,敲一下A,然后中括号零啊,那么这个呢,其实就是取出来了我们A这个数组里面的第一个元素,点击提交sum。
06:22
啊,这里呢,需要把我们的这个变量换成B啊。好。哎,可以看到我现在这个类型呢,是浪啊,相当于我们的int类型,然后这里面呢,就可以看到我们通过这个A0呢,就拿到了我们元素里面的啊,数组里面的啊一这个元素,并且呢把它展示在了我们的表格里面。啊,那么另外如何去获取一个数组的长度啊,有一个函数啊,叫LIS Le gth啊,这里呢,没有自动提示,可以一边搜一下看看有没有啊,估计也是没有啊,还真有啊,居然有LGTH啊,可以看到这里面呢,需要传递一个啊,名称为AR2的参数啊,这里面呢,就是我们要统计这个长度的一个数组,呃,此处呢,直接打括号,然后A22冒号把A传进来,我还是把这个返回值呢付给我们的变量B。
07:12
点击提交,哎,可以看到这里面呢,显示的是三,也就是我们A这个数组呢,里面有三个元素。呃,然后呢,我们再去看一下啊,如何去判断这个,呃,数组里面是否包含某个元素,有一个函数呢,叫contents cons,呃,这里没有自动提示,我看啊,Cons也是有的啊啊可以看到这里面呢,需要两个这个参数,一个呢叫value啊,也就是说我们要从哪个里面找这个值啊,去要也这个是说我们要去寻找的值啊然另外一个呢,就是set。啊,要是是我们说去哪里呢?去找这个值来直接给大家演示啊,不在这里,这个太费太多骨折。比如说我现在呢,要在这个A这个数组里面来找我们的。
08:00
一这个值我就在这里呢,哎,写上一,然后呢,Set这个地方,比如集合啊,直接把A扔进来,好,现在我用B呢来接这个返回值啊,点击sum提交,哎,可以看到,哎现在返回的结果呢为错,也就是我们的哎这个A这个数组里面包含一这个值,现在呢,我把这个值呢给它分成四啊,看现在还包不包含这个值。点击提交啊,可以看到就是file,因为我们的数组里面呢,只有123这三个数字,没有四啊,所以说呢,这里就是file。另外呢,还有一个包需要掌握,就是A2这个包,A这个包啊在右边呢,我们直接去搜这个包啊,你会发现呢,只有from函数,就是我们现在这个用法啊,此处呢,我们是传递一个数组啊,传递一个数组,然后里面呢,都是record的啊,因为我们之前说过这个数组里面呢,里面的这个数据呢啊,元素类型必须相同,而我们对这个复合类型啊,对这个复合类型,它的这个类型相同的是怎么一个定义啊,哎,是。
09:08
复合类型的变量。要做到范性相同。才算是类型相同啊,那么对于我们的record来说呢,意味着你要有相同的建职队,而且这个值的类型呢,都得保持一致,哎,所以说呢,我们之前这里这里啊给大家再看一遍,比如说这个name,哎,Tony。呃,然后逗号,然后再加一个A冒号18,哎在逗号分隔一个record了,哎,这是现在是元素之间的关系了啊,刚才这个逗号呢,是分割建设对的啊name。GC,然后再加上一个A,呃,17。
10:01
好,可以看到呢,这里不标红了,点击提交,那那么我们就得到了一张这个新的表啊,往下拉一下,诶,可以看到下一行。好,那么现在呢,基本上就是把这个数组的玩法呢,给大家讲明白了,呃,点到我们的这个之前的文档里面,我们去看一下啊,其实呢,这里面还没有还有很多操作啊,但是呢,呃,不会给大家再讲了。此处呢,我搜索一下这个early啊,你可以看到这里面呢,除了我们刚才说的early from,其实呢,它还有很多啊,比如说这个early to Du啊,底下还有很多比如a filter啊,为什么不给大家讲这些东西呢?因为这些都是实验中的方法,来点一下看看。哎,稍短,速度有点慢,哎进来了,哎可以看到它这里说呢,A瑞点to呢,还在实验,哎往下拉你会发现我们现在关于early瑞里面的很多操作,比如说这个啊,这个元素的一个拼接啊,元素的拼接,再包括这个元素的一个呃,类型转换,你会发现呢,它都是在实验中的这个包里面的,也就是说呢,你如果在你的生产代码里面用了这些函数啊,用了这些函数可能会导致你的flux脚本呢将来不兼容。
11:12
好啊,回到我们的编辑器,最后呢,给大家总结一下我们这个,呃,数组的这个类型呢,它起到一个作用,呃首先呢,之前我们给大家讲讲过这个啊,在我们的脚本里面呢,可以去发送网络请求,而且呢,这时候可以去发送Jason啊,那我们知道Jason里面呢,是可以去写一个数组的啊,可以写数组的,比如说这个people。啊,那么我们知道在Jason里面呢,可以去写一个数组啊,表示我们的啊一串数据,呃,那么这个A瑞这个类型呢,引到我们的flux语言里里面来呢,其实就方便了我们去诶映射一个Jason里面的数组,那么这是其一啊,这是一个方面,呃,那么另外一个方面呢,就是数组呢,是一般的编程语言里面呢,普遍具备的一种数据类型。
12:01
呃,虽然说在我们Fla语言里面呢,可以对数组做的操作很少,但是如果没有数组呢,啊,你这个Rose冒号,然后传好几个record进来,这种操作就很难实现了。好,最后呢,给大家补一个知识点啊,这个地方差点忘了啊,就是给大家说一下这个数组判断相等的问题啊,假如说我现在再声明一个数组B。哎,213,然后呢,在这里有说明一个变量叫C,然后C呢等于A来判断是否相等B。呃,点击提交,把这个把这个底下的这个数据呢,给它换掉。V lue,然后呢,冒号把我们的C再用一个呃画括号给它括起来,点击提交。啊,把这个拉高一点,看到原始数据,可以看到呢,这个A并不等于B啊,因为A和B相等的不仅是内容要相同,而且呢,这个呃值的顺序呢必须得相同,呃在这里呢,改上123点击提交好可以看到呢,就是处另外呢,我们要注意啊,我们之前所说的这个record,然后还有字典。
13:07
以及现在说的数组啊,通通不能比较大小啊,它是不可以比较大小的,你可以看到我这个大于号一敲下去啊,这个A呢,就已经开始标红了,点击提交啊,这一段呢,这个程序的运行呢,会报错啊,所以说呢,它不能比较大小。好,那么到此为止呢,我们的三个复合数据类型呢,就全部给大家讲完了。
我来说两句