00:00
那现在呢,再给大家介绍一下构函数里边的一个叫匿名函数的,这么一个内容大家都知道哈,匿名函数在在很多的编程语言里面其实都是有的,所谓匿名函数就是没有名字的函数,匿名嘛,就没有函数,那一般情况下我们函数都是有名的。那什么时候我们会用到没有名字的函数呢?大家看这里够支持匿名函数,如果某个函数只是希望使用一次,就可以考虑使用匿名函数,这是第一个应用场景。当然了,我们说匿名函数呢,它也可以实现多次调用,待会儿我们再具体说好吧。那匿名函数使用方式有这么两种,第一种和第二种。第一种方式就是在定义匿名函数时就直接使用,第二种呢,是将匿名函数赋给一个变量。那此时此刻这个变量就变成了函数变量对不对?然后呢,再通过该变量来调用匿名函数,就是这么两种用法,那现在呢,我先把这前面的三个给他讲解了,过后再回头说全局逆函数来吧。
01:07
我们来讲一下go。让里面的匿名函数。匿名函数。走一个。我们给他一个标题二,刚才呢,我们做了基本的介绍是吧,我们把基本介绍呢,给他罗列成第三一个标题。罗列标题三基本介绍大家看,这是匿名函数的一个基本介绍,所以匿名函数就是没有名字的函数啊。我在这多说一句。匿名函数,匿名函数就是没有名字的函数,这个函数没有名,匿名吗?OK,那第二个呢,就是我们刚才讲到匿名函数的一个调用方式的问题。它调用方式,第一种方式呢,就是说在定义匿名函数时就直接调用,那当然这时你只能调一次了,调过了再想调没有机会了,为什么?因为。
02:04
你没有给他名字,也没有把这个匿名函数给个变量,那就用不了了,这个时候只能用一次,在这种情况下,我们的匿名函数只能用一次。啊,这种方式。这种。这种方式,匿名函数只能调用一次就行,就没有了,有时候还真有这样需求,就是有时候我们并不希望定义一个函数,而是想去调用一个函数,这个函数呢,我就不想给他。定义出来就是我想调一次就完事啊,这个时候匿名函数就就可以用了。还有一个就是。把匿名函数呢交给一个变量,然后再可以调用好,我们来举案例,先说第一个调用方式。来吧,现在呢,我们新建一个文件夹。对吧,新建一个文件夹,Funk叫。匿名。哦,DEMO。
03:00
代码零几了呢?好,这是零六走一个。我们写一个文件,叫main.go。被点够好,前面这一部分代码呢,我们用一下。已经有的。找到命点勾来看一个第一种方式,来看第一个方式方式放me。第一种调用方式呢,就是刚才老师所说的这种方式,在定义,诶,我在把这个笔记粘过来吧,在定义时就直接调用。跟上老师的思路啊,同学们跟上老师的思路,那假设呢,我有这么一个情况啊,我想我。我们这样来试用一下,做一个案例演示。案例演示。好,同学们看这段代码,大家看能不能看懂,第一种我要我要求两个数的和传统方式应该怎么写呢啊求。求两个数的和,求两个数的和,我我以匿名函数的形式来来完成啊,使用匿名函数的方式完成来走一个说我这里有个函数fun,但是我没有给名字,我直接写行参了。
04:19
N1INCH n2inch,然后返回一个int完事,大家看这里面没有函数名,一般来说这边会写函数名嘛,对吧,这边会有函数名,但是我没有写,我就没有写不给。不给的话,这里面还是写我们的函数题,Return。N1。N1加N2,那怎么调呢?问题是你看没有函数名,怎么调呢?直接括起来在后面写就行了,N1N2。代码写完,我用一个变量来计收。比如RESULT1。洗完了。大家看这这个就是这个就是匿名函数在定义时同时就完成了调用。
05:03
怎么体现出定义的,这就是定义怎么体现出调用的传参了,对吧,那这传的时候我就直接传具体的值了,比如说十二十。就相当于说我在定义这个匿名函数的时候,同时就调用它了,行差十会给到哪里?同学们,你的十就会给到这个地方。你的20就会给到这个N2,然后他进行计算,计算过后把这个瑞返回给谁呢?Result t1理解吗?就这么一个流程啊,就这么一个流程,也不难,好,我们来看看结果对不对呢?Format。Print一下。然后我输出这个结果,比如说我说N这个RESULT1。等于说出来这道题,那同学们,我们跑起来。CD点点RCD到刚才我们写的funk demo06。
06:01
然后go run一下我们的代码对不对面点go跑起来看效果。我们可以看到RESULT1确实等于30,这个我们刚才分析的是一个道理,这个就是匿名函数在定义时直接调用的一个经典案例,那么我把这个案例呢给同学们放到笔记里面去。大家看有没有印象哈。并不难。来吧。给同学们放到笔记里边去,大家有一个印象。那还有一种方式,就是将匿名函数赋给一个变量。然后通过该变量来调用匿名函数,诶,这也是一种用法,这也是用法,来我们举个例子说明它的具体使用啊,同学们请看我现在呢,写的匿名函数还是用它吧,好不好还用它,但是呢,我们求两个数的。擦吧。差,但是我在这呢,我把它交给你一个变量,比如说这个变量我们就叫A吧,随便写个A。
07:06
看。大家知道是什么意思吗?这句话的意思就是将将匿名函数随这个。这是函数的签名。付给了,付给了谁?A这个变量,那此时此刻,A这个变量其实就一个,就已经是一个函数了,它是个函数变量,则。则A的数据类型。的数据类型就是函数,变量就是函数了,函数类型。那怎么证明它是一个函数类型呢?我们可以通过这个A来完成调用啊,此时。此时。此时。此时。诶怎么回事,此时此时啊,此时我们可以可以通过谁呢?A完成调用。
08:05
完成调用,那我们看看是不是这样子的。来,我写个results。二。等于什么呢?A画起来里面写上这个值十。30大家看这个地方可以返回什么,就是这是相当于把这个十传到这个N1,把30传给了N2,还是符合我们函数调用机制的啊,然后呢,这个地方我们输出RESULT2。他等于多少呢?这地方就应该等于负20。自信一把。执行把看效果。瑞的二等于负20,对不对,等于负20,那这个时候其实这个A就可以反复的要用,但是大家知道啊,这个A可不是函数名,不能理解成函数名啊,不能理解函数名,那你如果用这个A反复调用它也是可以的,比如说说老师我再想用A调用一次,可不可以,当然可以,比如说re result3这个地方我们把它变成90。
09:06
一样,它可以完成调用。那此时此刻追绕着山,就应该等于60跑起来。RESULT3就等于60没毛病吧,代码就OK了,就是我们匿名函数的第二种用法,什么用法?就是将定义的匿名函数交给一个变量,再通过变量完成调用,其实这种写法呢,呃,其实用的我感觉啊,就是呃,用处并不是很大了,并不是很大,但是呢也有用,为什么呢?大家想你一般来说这个函数你在里面,在这个main里面,你是定义不了函数的,对吧,你单独定义函数语法也通不过,但是我通过这种方式呢,就可以在一个函数里面再定义一个函数了,它也是有用的,对吧?诶这样子它是有比较有还是有它的价值的,在某个情况下,我们用这种方式呢,也可以完成一些特殊的需求,大家知道有这种用法,好,我把这种用法呢,也给同学们整理到笔记里边去。
10:06
截取一段代码。大家有一个印象。八号。这是匿名。函数的第二一种用法,那么我们再来看第三一种用法,就是全局匿名函数。如果我们将匿名函数赋给一个全局变量,那此时此刻这个匿名函数就称为全局匿名函数,可以在整个程序中有效来给大家走一个。全局匿名函数。全局你。匿名函数。哦,就是它全局啊,全局匿名函数,这样子给大家来一个三号标题。我给他来个三号标题,大家看具体应用。晓得了。那么我走一个案例给大家演示一下,看看怎么用的啊,注意听这个还是有用,那既然你是一个全局匿名函数,所以说它应该是交给一个全局的变量,怎么写呢?比方说我这有一个放一。
11:13
等于。等于假设我就这这个就是一个全局逆令函数的对应这个变量,我在这里写一个函数放,比如说我这个全局函数呢,要求两个数的乘积。好的,Inch返回一个int,然后return n1乘以。乘以N2写完了,你看这个时候各位放一,就是说因为放一它是一个全局变量。是吧,那你把这个匿名函数交给这个全局变量,那此时此刻这个放一就代表一个全局匿名函数。放一就。就是。就是一个全局,全局匿名函数。
12:04
对吧,那这个函数就可以在任何地方使用了,在整个程序它都是有效的,当然你这个时候这个变量名要大写才是全局有效哈,你如果是小写还是不行,就要把它写成大写的,那么我们来调用它一下。我们来调用就是。全局。全局匿匿名函数的使用。非常的简单,我用RESULT4来接收一下,然后呢,我们这个全局匿名函数的名字叫放一对吧,然后我在这边传一个四,再传一个九,我把它输出来给同学们看一下。这时我写个RESULT4,然后输出四运行一把。保存运行一把,这个时候应该输出36,答案完全正确,所以说这就是一个全局命令函数的使用,那么我们给大家截取一下它使用的核心代码。
13:02
这块是定义。对吧,这块是定义。然后呢,他在使用这一个全局匿名函数的时候呢,它是这样使用的,把这块代码呢,也给同学们放到笔记里面来。全局匿名函数的使用。在这里。没问题吧?好,把它放在这块。好,同学们,那关于匿名函数呢,我们就给大家介绍这么内容,在实际的开发中,我们用的比较多的还是第一种方式,相对来说多一点,就是这种方式用的比较多一点,以后同学们再看到这样的形式的使用啊,不要大惊小怪,诶说怎么这样用就可以呢?因为你会想起韩老师讲过一个叫匿名函数的调用方式,你就心里面就很坦然了,哦,原来是这种效法,我见过,对不对?那个项目里面用到这个东西的时候,因为你有这个知识点支撑,那你就不怕了。
14:01
那各位关于匿名函数的调用呢?老师就给大家介绍这么些。也就足够大家用了,好吧。
我来说两句