00:02
各位同学,那我们现在呢,开开始给大家讲一下go语言核心编程里面的数组和切片。那大家都知道哈,就说我们在进行编程的时候呢,数组这个概念可能有些同学是听过的。对不对,就是存放一种数据嘛,这是一种数据结构,呃,也是一种数据类型,它是用来存放多个数据的这么一种数据类型。但是切片这个概念呢?很多同学没有听过。因为切片是。Go语言里面它一种特有的数据类型,所以说大家注意一下这个切片。那现在呢,我们就来看一下数组。那首先还是老规矩,我们说讲课呢,首先还是要要说一下,就是为什么我们需要。这样要去讲这个数组对不对,那我还是由浅入深的给大家进行一个引导。老规矩,我们来看一个问题。
01:00
说有一个养鸡场有六只鸡,体重分别为三公斤,五公斤,一公斤和这个,怎么还有个50公斤的,50公斤的可能是超级大鸡啊,那就不用不用管了,可能是这个,这个鸡特别特别能吃啊,长得挺胖的,那么现在的问题是什么呢?他说请问六只鸡的总体重是多少?平均体重是多少?请你编写一个程序,OK,这个问题其实难吗?如果说我们用传统的方法来解决,应该说同学们都能做出来,那那这个很简单嘛,就是我定义六个变量。我定义六个变量分别表示60斤的体重,然后呢,把它们总体重加起来,求平均体重除以一个六不就完了吗?所以说,这个问题其实并不难。但是呢,我们用传统方法来解决,我们会发现这个用传统方法解决会出现一些问题。
02:01
就说肯定有些不爽的地方,对不对,就用起来不方便的地方,这时我们就会引出什么呢?引出我们的数组。这个概念,或者说这个知识点来吧,我们不管怎么样,我们先用传统的方法来写一写,看看到底有什么问题。好,同学们,那现在呢,打开我们这个笔记。打开我们笔记,我们继续一边讲一边做笔记,OK。我们的笔记呢,是在这个位置打开它。打开过后,我们新建一个章节,叫数组与切片。我这定一下位。数组与切片。新开一个章节,就在这,叫数组与切片。宿主。与切片。
03:02
是切片啊,不是切丝。OK。我们把它放在这里。标题。那现在我们看一下宿主与切片,它的需要注意的地方,我们先来看第一个为什么。为什么需要宿主?对吧,对吧,这样我们就引出这个数组概念了。然后呢,这个地方有个标题二,给他一个标题二吧,嗯。我们先看一个问题。这个问题呢,其实我们已经把它引引导出来了,就是老师这其实已经提出来了,对不对。这个问题就是这样子的说的。怎么说的呢?大家看这里。是吧,有个养鸡场养鸡的问题。引起大家思考。那首先呢,我们先不用说,我们先不提数组这个概念,我们先不提数组这个概念,我们先来看使用。我们现在就。使用传统的方法。
04:01
方法来解决。对吧,来解决它。OK,我们看看用传统方法来解决,是怎么来解决呢?老规矩打开它,我们现在这样走啊,同学们,我们新建一个chapter,因为这是第七章节了,所以说我们新建一个文件夹叫chapter。零几呢零七。OK,我们新建一个文件夹。叫数组瑞零一。然后在这个DEMO1里面呢,我们新建一个文件叫梦底go。老规矩,写上package me,然后呢,Import一个包包。Form,我们写一个主函数。然后呢,我们来解决,我们用传统方法来解决好,先把问题,先把需要解决的问题呢,先把它放在我们的这个位置是不是。
05:00
放在这个位置,那我们一起来看看怎么解决。因为这是因为这个地方呢,用传统方法来解决,我的思路先给大家分析一下。思路分析。思路分析就是我们定义定义六个变量。六个。六个变量。六个变量。对不对,分别表示分别表示什么呢?表示六只鸡的。六只。67的什么呢,体重。对吧,然后求出它们的和。求出和,然后再求平均值。然后。然后求出。求出平均值。对不对,非常简单,思路好,那么就来吧,咱们首先呢,VR。哼,第一只鸡我们这样这样子,用类型推导恨一母鸡,母鸡我们用母鸡来做啊,然后来走第一只鸡,他说是三公斤对不对,其他六只我十个亿啊,横二。
06:14
第二只鸡,第二只鸡呢,他说是五公斤。第三只鸡,我们可以看到其实已经有点麻烦了,对不对,第四只鸡,第四只鸡它的体重是3.4公斤,第五只鸡。第五只鸡它的体重是两公斤,第六只鸡是一只超级大大大鸡,对不对,50公斤,一下就把所有的这个鸡的体重拉起来了。定义好了,定义好了,怎么求总的体重呢?定一个变量to wait。好,我们只需要把这六个变量怎么样加起来就完了,其实也并不难。站起来。很二。对不对,加上。加上很山。
07:01
加上很是。是再加上。第五只鸡再加上第六只鸡的体重。好了,同学们,体总体重其实我们已经算出来了,那么我们要求平均体重又怎么办呢?也非常的简单,我们来求出一个平均体重。AVG。Wait。AV GW GT等于多少呢?等于这个总体重除以六不就完了吗?对吧,那么我们打印一下。来吧,我们打印,我们说总的体重这个地方可以降给他一个值。总的体重。用格式化输出,总体重等于。百分之对吧,然后平均体重。平均体重百分位,然后呢,把这两个变量往这一放完事。
08:01
好,我们来看看这样保存有没有语法错误,我们看看有没有语法错误。可以看到这已经出现语法错误了,为什么呀?你们可以看到同学们看这里有什么问题?他说恨是。不匹配int和这个FLOAT64,因为这里面有些你看啊,这里面你写的三这样的话,P1的类型,他认为是什么类型。他认为是整形,而你这个3.4呢,又是FLOAT64的类型,所以说这样子是不行的,怎么办,非常简单。给他这样处理一下就可以了。看到没有?这样处理一下,让他认为是什么呀,是FLOAT64保存成功,好这块不会把这包错了,再看这有没有错误。这没有错误吧,好,跑起来来,我们运行一下。我们运行一下。好,我们进入到CHAPTER07,然后CD到我们的avg哦ADEMO。
09:08
我们运行刚才写的代码。Me点购跑一下。同学们看效果,我们打印出来这个体重呢,就出来了,总体重是64.4,平均体重是这么多,但是大家看到这个平均体重精确的这个小数点太多了,不太喜欢,我们来把它精确到小数点两位就可以了,我做一个处理,怎么样让它精确到小数点两位呢?非常的简单哈,非常简单,你只需要这样写。F,然后点二就行了。这样就代表小数点精确的。两位再来跑一下,跑起来请看效果。我们可以看到此时就保留到10.73了,但是问题来了,有些同学说老师你这个地方是输出的时候保持到小数点两位,但是这个值我想我想把它传给另外一个数的话,这个地方怎么处理呢?
10:05
可以这样处理同学们。就是我们可以把这个数进行处理以后,直接让它返回小数点两位的,这样就更方便了,大家看我怎么处理,这样子大家还记不记得我们学过一个叫s print f这个东西。Pretty这个是不是用来做格式化的呀?是不是?什么叫做格式化的?那这样子的话,我们就可以这样写了。F,那么我们就这样写,让他直接给我返回一个。点百分。点2F,这样不就更好吗?什么意思,这样子,我们这个平均体重本身就是它了,所以说这就直接输出它的原子就可以了,这句话什么意思?解释一下。注意听这句话的意思,就是说我把这个返回的数直接保留到小数点两位,而且是四舍五入的方式,然后把这个值给我返回来。
11:03
Print print少了个T啊这样子就说这句话的意思,我我再说一下啊,这个是把什么呀,把这边。得到的一个值经保留到小数点两位,再返回给avg位置。知知道这意思吧,就是这句话的意思,再做一个说明。叫什么呢?就是将。将这个结果。将这个结果四舍五入。四舍五入。保留到。保留到小数点两位啊两位。然后返回一个值。返回这个值呢,就是avg位,这样就更方便了,以后呢,你可以直接用这个avg位来做其他的操作,是不是?来吧各位同学,我们运行一下跑起来。抛弃过后,我们发现,的确,诶,这有个小问题。
12:03
这个地方问题是什么,是少了一个什么呀,百分号。走一个跑起来看效果是不是一样的呀。是不是一样的可以了?好,同学们,我们用传统的方法呢,就已然完成了。同学们想。用传统的方法把这个球机的总体重和平均体重完成了,过后大家有什么感想没有?有没有什么感想,我旁的就不说了,你看啊,我们现在是统计六只鸡的体重,你定义了六个变量。没问题,但是我要统计600只鸡呢。你怎么玩?你想想你怎么玩?难道你要跑去定义600个变量吗?显然,这个时候我们就需要一种新的数据类型来解决这个问题。你想。Go语言的设计专家,那也不是白吃粮食的,人家也是。
13:01
对不对,专家级别的,你不可能不去解决这样的问题,你说白了就是六六百直接你600只接一个一个的记录好,还是说用用一种新的数据,把它统一的管理起来好了,告诉大家可以的,有一种数据类型就叫数组。数组听这个名字就知道是一组数据就是数,就是数据,组就是组,一组嘛,就是把数组,把这个数呢,放在一组里面去统一管理,同学们通过这个案例,其实就已已经可以看到数组的威力了,好了。我们先把这个传统方法解决的方案给大家放到这儿来,然后我们总结几句话。传统方法的确把它解决了,但是呢,有问题。对上面代码做一个说明。对上面代码的说明。我们可以看到啊,我们可以看到使用使用单独的。
14:03
使用。传统的方法方法不利于,不利于什么呀,树。数据的管理和维护。管理和维护对吧,你想一想,每一个鸡的体重你都用一个变量,肯定不好管理和维护,对不对,这是第一个,第二个呢,也不利于我们程序的编写啊,就是从传统方法。传统方法。不,不够灵活啊,不够灵活。不够灵活。不够灵活,对不对,他不灵活,没有办法处理一些复杂的业务,因此呢,这时,因此我们就引出了,引出需要学习的学习的一个新的数据类型。叫什么呢?就叫宿主。理解。我们数组就应运而生了,这就数组的来由,那既然我们引出了这个数组,那么下面呢,我们就来看宿组是一个什么玩意。
15:09
OK,那关于数组为什么需要数组的引出的内容,我们先介绍到这里,下面呢,我们就准备为大家详细的介绍数组的一些使用。好,这块我们先截个视频。
我来说两句