00:00
各位,我们来看一个麦谱的课堂练习,这个练习呢,相对来说综合一点使用到麦的,呃,各个方面的知识点,那么我们看一下这个课堂练习的要求是什么啊,首先呢,他说使用map,这是一个map,大家看这个map是什么结构啊。它的K是一个寸对吧,它的值是不是又是一个map,看清楚没有。那么K呢?它表示用户名是唯一的,不可以重复,就是说这个K是寸,它是表示用户名的唯一,不可重复。第二个,如果某个用户名存在,则将其密码修改为六个八。如果不存在,就增加这个用户信息,包括他的昵称和密码,能看懂吗?也就是说从他这方判断出来,他的这个值里边应该怎么保存这个用户信息呢?就说这个用户应该有。他的昵称和他的密码,也就是说里面应该有两对k value对不对。
01:06
然后要求你写一个函数叫modify user modify user呢,呃,可以接受两个参数,一个是这个map本身,第二个呢,传一个名字进去,完成上述功能,说说白了就是说他给你传一个用户名进去,传一个用户名,然后你去判断这个map里面有没有,如果有你就把密码改成六个八,如果没有就增加这个用户信息,能明白了吧。需求还是很简单的,也也涉及不到什么编程思想,就说这这个没有什么思路,就很简单,就按这个套路走就行了,来吧,同学们,我们一起完成这个案例。来,我们把这个案例呢整理到这,这是麦的一个课堂练习题。对吧,课堂练习的具体要求,人家这说的很清楚。好第一步,呃,第一个他是要求这样做对吧,我们把这个整理一下。
02:00
第二个呢,K表示什么信息,第三个。第三个如果用户名存在怎么样,如果不存在怎么样,对吧。好,整理好了。这个为什么这样子的啊,往这边挪一下。一。把这个板梳一下啊,这感觉看起来不舒服,好这样就是不是就这样就更好一点。好,那么同学们看一下我们的代码,代码实现。来代码实现。那跟上老师的思路吧。嗯,既然如此,我们就按照他的这个要求,一步一步的将其实现就可以了。来,在CHAPTER09里面我们新建一个文件夹,教练席。C。那么我们新建一个文件叫main.go。对吧。然后呢,我们。
03:00
我们这样子把这个要求先粘过来。从这边我们粘一份通用的这个结构。好吧。好,写到这里了。然后呢,我们function me。可以了。那具体的具体的这个案例的要求呢,人家这已经给我们说清楚了,我们来完成它就可以。我们在这完成它就可以了。好,写完了,好,同学们,现在我们来开始完成代码,首先呢,在主函数里面,我们先去定义一个这样的map。对不对?好,那就这样写喽,Users。等于make make什么类型的呢?就这个类型的好吧。假设我们呃,Make了十个,Make了十个,好,那现在呢,有十个过后就make了十个啊,十个可以放十个这样的东西,但不要忘了它的值还是map,你到里面还要make才行啊,好,现在呢,我们来写一个函数。
04:01
就是这个函数它已经给我们定好了,我就用它,我也不啰嗦了,好吧,Fun。他。然后写完。那首先呢,这个users你给我传进去,传进去给我再传一个名字来,好,我开始做这个动作了啊。Modify user。我把什么传进去呢?我把这个users传进去。传进去过后,我再给他传一个名字,比如说是汤姆。好,我们看这里面代码应该怎么写,这个user拿到,拿到这个map过后呢,诶这个地方写错了,是尊他就去判断这个名字有没有好,我们来判断,先判断。判断user中。中是否。是否有这个name?对,有这个name k没有。那判断一个map里面有没有这个名字,就是这个用户名怎么判断啊,是不是前面我们学过一个东西啊,是这样写的,还记得吗?
05:05
嗯,它可以这样判断,就是取出这个值。然后呢,这边有个OK,还记得吧,然后我们users。里面写上这个name,就说我看这个user里面有没有一个叫name的这个K有没有,是不是通过这个OK就可以判断了。是不是前面我们学过这个东西吧,但是这个判断呢,有点麻烦,所以说我就简单一点,直接这样判断,这样判断也可以,上面那个是可以的啊,但是呢,我换一个用法,让大家看的更多一点。说我这样写也可以,U里面如果它不等于零。不等于这个力。诶,这个也可以,就说如果他的这个名字。他的user这个map里面有这个用户了,那么他就会不等于利,如果没有就会等于利,好这一方就说明有没有这个用户啊,就有这个用户,是不是就说明有这个用户了,那根据他的要求,如果用户名存在,就将密码改成六个八,那简单来写一个。
06:13
Users。Name。然后密码,假设密码的这个K就是这个map。Map里面不就是用户的信息吗?其中假设有个K,我们叫做passor。好,我就把它改成六个8123456写完了。那么还有一种情况就是else了,就是如果else,那就说明有没有这个用户,是不是没有这个用户啊,目前没有这个用户。没有这个用户的话,按照他的要求是不存在,就增加这个用户信息,包括昵称和密码。包括昵称和密码,这不写的有吗?对吧,包括昵称和密码,好,如果没有这个用户,我们就创建这个用户,怎么创建呀。是不是首先要make一个?
07:03
这个。Make一个map才可以用是吧,你不能说,呃,我我都没有写,我就直接把它放进去了,这是不允许的,所以说我们先来make一下。那make的时候我们就这样走了,走了啊,我们先来MAKE1把,它的这个具体信息就是这样写。追听name。你不能马上往里面放东西啊,你不能这样写啊,说老师我现在知道了,他没有PWD,这写错了,我直接PWD,给他一个密码。对吧,比如叉叉这样行吗?不行,为什么,因为这个,因为这个名字都还没有了,你这样直接用肯定直接报错了,因为你这个name对应的这个map,你是不是还没make呀。所以说你第一步应该怎么办,你是不是应该先make出来这个名字对应的map啊?是不是应该这样,Make?Make什么?Make一个这样的map。
08:00
那么这个map里面你认为有几?至少有几对K呢?至少有两对,因为人家说了要有昵称和密码,昵称是一对,密码又是一对,是不是好,这样子用就没问题了,然后users。Name,好,这样子再去往里面放东西就没问题,第一个我们先把密密密码放进去,密码它说是什么呀。那他的密码就就这个吧,那就密码就是六个八。没问题吧,然后呢,再来user。名字,然后呢,这有一个昵称。In I CK name,那么昵称怎么写呢?大家看,嗯,按理说这个地方应该再给我传一个昵称过来,但是他没有传,我就我就试一下E,我就这样写啊,我就这样拼一下就行了,昵称。昵称好,然后呢,把这个给我加过来就行了,把他的名字加一个昵称,作为昵称的名字,明白吧,我这四个亿啊,这示意代码。
09:01
示意,那如果说你想做好一点呢,你可以再再再让他传一个,传一个昵称名字来,比如说link name。CLAIM10寸这样也可以,那这个时候这个昵称就直接往这一填就行了,好吧,这里呢,我就我就四个亿就不传了,不传那么多参数了,写完了,那写完是不是这个代码就就OK了,看如果。存在,我就把密码改成888,如果没有这个用户,我就先make一个这个用户信息的map,然后往里面放密码和昵称,写完了。行吧,好,我们来试一下。来,现在呢,我们再加一个Mary。Mary,好,我把这个输出来,大家看一下print。然后呢,把user输出来,注意因为user它是一个呃,Map,因此它是引,它是引用传递,对不对,说里面的修改会直接影响到外面的修改,就users也会。
10:01
你该增加就增加,该修改我也变化了,明白吧?好,我们来执行一下,看代码有没有错。好代码好像这儿有点儿问题。是不是还有哪个地方有错?没有报错了吧,没有报错,我们来执行一下CD,点点CD到里面的exercise到go wrong面点go跑起来,我们可以看到此时此刻他输出的信息,诶跟我们想的是一样的。大家看到在这个map里边呢,就有了一个汤姆。汤姆这个人的信息密码是六个八,昵称是昵称汤姆没问题吧,第二个人是Mary Mary呢,他的信息是一个map,密码是888,昵称是。这个昵称Mary完全正确啊,完全正确,当然了,你事先说老师,那我事先如果先放一个呃麦进去,是不是他就直接改这个888不改昵称的呢?肯定的嘛,比如说我在这给他。
11:01
先给他加一个用户进去,这个也是可以的,对吧,比如说我这样写。有点。注意听啊,有点来了。我先给他放一个用户名,比如说叫做呃史密斯,史密斯这个人史密斯,因为因为史密斯他是他的这个值对应的是map,所以说是不是也得先make一下呀。这个能理解吗?一定要理解啊,你不make的话没法用啊,再说一遍。Make,好也是两个信息,好,我给这个user史密斯呢,呃,先给他来一点信息进去,比如说史密斯他的密码。密码,比如说这样子啊,他的密码是什么呢?好,假设他的密码我给他写的是六个九。好吧,再给他的昵称写一个。再给他起个昵称。注意看私密斯的昵称Li Li好,它的密昵称,比如说叫叫做小花猫。
12:00
小小花猫,OK,那同学们想一想,如果我在这个地方也把史密斯传进去了。那我问大家一个问题。当我们进去过后,他应该走哪个逻辑,是不是走这个逻辑啊,走这个逻辑的话,那私密斯的密码就会变成六个八,同时史密斯的昵称不会发生变化,是这意思吧?能看懂吗?来朋友们运行一下。看我们可以看到结果是这样子的,跟我们想的呢,应该是一样的,对吧,大家看这里。史密斯,他的密码被修改成六个八了,同时他的昵称并没有发生变化,还叫小花猫对吧?那说明我们这个代码是走正确了。他到时间走的是这个if分支,而没有走else分支,对不对?好同学们,那关于这个代码的实现还有分析呢,我们就给大家讲完了,我把代码给大家整理一下,放在笔记里边去,大家想一想。
13:01
好,因为这个代码比较多,我就直接整体把这个代码源代码直接给大家放过来,好吧。放到表格里面去。好,放到表格里面去。OK,直接放了啊,同学们看一下。OK,那同学们看这一段代码我们就说完了,那各位同学到此呢,我们就把麦谱所有的信,把麦各个方面全部给大家介绍完了,后边我们在写项目的时候在写爬虫。爬虫的时候,包括我们后面写流量统计这个项目的时候呢,我们都会用到麦谱这样的相关信息,尤其是这块map谱里面,如果麦还值还是map的话,大家一定要搞清楚,要make两次。这是我们初学施政的时,呃,初学go浪的时候啊,经常容易犯的错误,请大家一定要重视好吧,好,那关于这块map呢,我们就全部为大家介绍完了,下一下一个章节呢,我们开始为大家介绍我们这一个勾浪里面的面向对向编程,或者叫做面向接口编程,OK,好,这块呢,我们就说到这里。
我来说两句