00:00
好,同学们,我们来看一下下一个数组是什么呢?来看一下他的介绍,数组是可以存放多个同一数据类型的,这么一种数据类型就是数组可以存放多个同一数据类型。就说数组可以存放同一啊多个同一数据类型,那么类型的数据啊,就是同多个同一类型的数据,数组也也是一种数据类型,在构中数组是值类型,记住了数组是值类型,有很多编程语言里面呢,数组其实它是引用类型,但是在go中注意听这句话,Go里边宿主是直类型,因此它的使用呢是。要符合值类型以及值传递的这些特征特点,这点大家一定要有清楚认识,那现在呢,我们来一个数组快速入门,那快速入门最好的方法就是我们用宿主来解决上面养鸡场养鸡的问题,这样大家马上就能够快速的理解宿主在程序里面是怎么使用的。来吧,我们来看一下数组的快速入门。
01:10
先把数组介绍放到这里来。OK,我先放好。数组的介绍。刚才呢,我们有一个标题二,给他一个标题二吧。数字介绍。把整理下。是吧,然后呢,我们来一个数组的快速入门案例。数组的快速入门。给大家来一个标题二。给他一个标签,我们就用啊,我们使用数组。数组的方式方法来解决。来解决什么呢?养鸡场,养鸡场。养养鸡。养鸡场对吧,养鸡的问题,养鸡场的问题就可以了,那我们来走一段代码。
02:05
那现在呢,这这个地方是传统方法对不对,那么我们用数据来解决,我新建一个文件。呃,我们干脆就直接用数组在下面写就行了,好不好,这样我就新开文件了,就是使用数组的方式。方式来。来解决。来完成,来解决解决这个问题。大家看他怎么做呢?他这样做的。首先,第一步先定义一个数组。那怎么定义一个数组呢?注意听他是这样写的,VR。你是一,你你不是有有六只鸡吗?好,我定一个数组。六。里面是float float64的类型。大家看这个P就是一个数组,它的数据类型是这个PRO64里面可以存六个数据。
03:03
写好了过后呢,这个就定义好了,定义好过后初始化。对,给数组的每个元素。每个元素赋值,OK,那也比较简单啊,同学们看零这个赋值肯定还是要一步一步赋的,这个是没办法的,好吧,那为了偷懒呢,我就先把它复制下来。复制下来,我直接这样改。第零个元素加一个S对不对,加个S好,其他一推推,这是第二个元素。第三个元素第四个元素第五个元素第六个元素。第六个元素,那么它的下标第一个元素这是,这是H数组的第。第一个元素。第一个元素复制。也就是这个就是。
04:01
第一个元素。好,那以此类推,这个呢是第二个第三个第四个第五个。第六个注意看到它的下标是从零开始计算的,再说一遍啊,它的下标是从零开始计算的,也就是说这一个呢,就相当于是hes数组的第二个元素,它的下标为一。注意这这个细节我写到这啊,嗯,元素的下标。元素的下标。是从哪里呢?是从零开始的。开始。OK,那也就是说实际上最大这一个下标是五,而没有六。也就是他是零到五六有没有呢?六没有。六没有,如果你用六的话就越界了,也就是说本身有六个数据,你非要去访问六,那就相当于说访问第七个数据了,那就没有好,这个写完了过后,我们看总体中怎么写,总体重咱们就不要这么去加了,因为数组呢可以变立。
05:07
诶,数组可以遍历它就很方便了吗?啊,我们遍历数组。便利。数组求取,求得。求出总体重,这个就很简单,负循环I定义一个零。零下标为零,I小于多少呢?我们这个数组的总长度用认识这个N是一个内置函数,前面我们已经讲过了,对吧?Hence,注意啊,我现在讲的是快速入门,所以说细节我还没提到,爱佳佳理解下面呢,我定义一个总体重。这个总体重呢,我定一个新的好不好?V我就这样写to。Tota。位置,因为前面已经有这个变量了,我定一个二好不好,不要跟他打架。
06:00
不要冲突0.0,我为什么定一个0.0,大家知道吗?因为你的这个体重里边其实本身都是小数是不是,所以说我定一个0.0,让它的数据类型呢,变成六四,这样数据类型就统一了。加起来就行,累加。甲等。家。家。等多少呢?HI,你看这个多方便。这个多方便,方便到什么地方,就说你以后这个地方如果增加一个,增加一只鸡,那这个就很简单,我下面的代码怎么样不用变。是不是很灵活,好求出来,这个过后,下面我们就可以求出第四步,总体重求出了就可以。求出。求出平均体重。平均体重,那平均体重怎么写呢?老规矩,我们给他来个AV。Every every位,那么也用个二好不好?怎么写老规矩,我就这样用它就完了,好吧?
07:04
我就偷一个懒的二等于它,那这个地方呢,我们用这个二来除以零六,可以拿到它的一个保留在小数点两位的一个值,好最后输出结果。最后输出结果来,上面给大家来换行。我们看看这两次球的体重是不是一样的to v2。Avg to wait,二算出来了,我们这边写一个二。这边也写个二。同学们,同学们看两次的方式,哪一个更方便,你你们看一下是不是这个更方便,说老师我没有感觉到有多方便呢,待会儿你就看到有方便了。为什么?你看如果我加一只,加一只鸡的体重,这个地方的代码是不用变的,这个地方的代码也不用变,为什么?大家看我这个六还可以写的更灵活那。是不是我可以这样写啊嫩,然后呢,把这个横写进去。
08:04
是不是很灵活,是不是很灵活,就是说我用总体重去除以积的这个个个数就行了。来保存一下。那么我们看看这两次有没有问题,我们看看这里有问题出来了。哦,大家看怎么会有这个冒号,这个不行呢,因为你这是不是已经有了,你这打个冒号不就是类型推导吗?这是不对的。大家不要犯这个错误。再保存看看还有没有错误。还有吗?这儿还有错误,看这个地方是为什么错啊?同学们,你们想一想,To weight是一个什么类型?To Bit是一个FLOAT64,而你这个类型是什么类型,是一个int型。那显然不行了,因为我们知道在go里面,它运算的时候呢,它这一个数据类型要保持一致,那这个地方好办,我把它转了float。六四。
09:00
理解。保存一下。再哭起来就哦了。看到吗?没错了,也就是说他转了过后呢,它就变成六,就变成6.0了嘛,这个不影响结果。看这地方为什么要转啊,再说一遍,因为你这个是664,而嫩横呢,它这地方是求出来四个整数。求出来这个整数的话类型不一样,负60。转一下就可以了。那有些同学老师你上面为什么写个六就可以了,好,如果你现在再问这个问题的话,只能证明一件事情,前面没有认真听讲,我原先就讲过,如果你这是一个具体的数。这个是一个具体的数是没问题的,但是如果你把这个六给一个变量,然后再把变量写到这个位置,它也会报错,因为变量它是有数据类型的,而这个六呢,是个具体的常量值,它是可以除的,明白吗?这以前我我讲过这个类型,讲过这个知识点,同学们记住啊,所以说你看这我就要强转一下,这样子让他的数据类型和下面这个分母的数据类型保持一致。
10:06
好的,我们来运行一下看效果。走。我们看结果对不对。我们可以看到两次结果是怎么样,完全一样的。完全一样的,没问题吧?没问题,所以说我们用数组呢,就解决这个问题了,虽然同学们对数组还有很多不理解的地方,但是毕竟大家已经看到我们用数组来解决一个问题,你多少有点感受,对不对,多少有点感受。那么我们来体验一下这个数组的好处在哪里,我们来看看,如果我们增加了一支。一只鸡。比如说。我需要改两个地方,一个把这改一下。然后呢,把这改一下,把体重给它加进去完事,下面代码不需要做任何变化,你看我就是把这个地方增加了一下,然后加了一支,增加了一支新的增加。
11:02
增加。一只。一只新的。增加一只鸡的体重。这不就完了吗?下面代码不需要变化,不需要变化,你看我一跑代码仍然是没问题的。当然当然,这个时候两个值肯定不一样了,看总体重发生变化了,平均体重也发生变化了,看到没有,所以说我们可以看到数组相对来说肯定比我们原先这种单独的定义变量要方便很多,而且可操作。是不是你不然的话,你像你像你看你以现在这样写,你加一个这个东西过后这个地方要加。对吧,这方这方还要改。你改的地方还挺多的,而且你想如果这个变量越来越多,越来越多,你你写多长啊,而我这个地方不需要变化,他一个变利就全部搞定,所以说通过这个案例,大家应该直观的感受到数组确实有它的优越性,因为它更容易来管理我们的数据是不是?
12:06
好的,那我把这个解决方案给同学们也放到我们的笔记里边去,大家看一下。我把核心代码给大家拿过来。从这里开始截取。大家看一下。好,同学们,我把这个快速入门案例就放在这里了。我们总结一下,我们来几个小节,对。对上面代码的总结。代码的一个总结,我们总结这么几句话,第一句话。使用数组过后呢,我们发现数据的可维护性增加了。对不对,使用数组数组来解决。解决问题这个程序程序的可维护性,可维护。可维护性。
13:02
好,增加了。增加,而且呢更加灵活,非常容易扩展,对不对,而且我们可以发现,而且。而且发现代码。代码更加的清晰,就清晰也容易扩展。也容易也容易扩展对吧?OK,大家注意看一下,这个肯定很利于这个代码维护了吗?你你想一下这个一看就很清晰的代码,而你上面这上面这种方式显得就比较乱了。OK,好,那关于数组的一个快速入门呢,我们就为大家介绍到这里,大家通过这个案例对宿主有一个基本的认识,或者是一个大致的认识。
我来说两句