00:00
我们接着上午的内容呢,咱们继续讲解哈。好,上午呢,我们给大家讲到了偏函数对吧,讲到偏函数的它的一个基本使用。那么下面呢,我们继续来看看其他的内容。继续往下看。偏函数呢,我们已经把它基本的一个使用说清楚了。现在呢,我们来看一下偏函数的简化形式,什么意思呢?大家看到。我们前面写的这个偏函数。写的这个偏函数是没有任何问题的,但是呢,这个偏函数呢,呃,写像这个is depend a,还有像这个apply呢,呃,它总是有的。所以说呢,SC设计者他就觉得是不是可以更简单的把它写出来呢,可以的。这里我们提它的两个简化形式。声明,偏函数需要重写特质中的方法就是我们刚才看到的那两个方法,就是is,还有apply,有时会略显麻烦。
01:12
所以说scan呢,其实提供了更简单的写法,我们看一下第一种写法是这样子的。你呢,只需要声明传入参数的类型和返回这个参数类型,然后呢,直接写case就可以了,那这句话。就可以这样理解。怎么理解呢?就是如果当然啊,再说一遍啊,这个case怎么写。取决于你原先代码是什么逻辑,你看这句话,我相信同学们就能看到比较清晰什么意思,如果你传入的这个值,当然传入这个值它是这个类型。对,那么这个类型呢。你这边可以随意的写个变量。啊,我这写的是I,当然你可以写abcd。
02:02
如果它是一个int,以前我们讲过这个是类型匹配。那如果他匹配上上了呢,我们就执行I加一,如果匹配不上,不写任何代码。那有些同学就说了,说老师不是以前说过的,不写任何东西,匹配不上,他会抛异常吗?这里就不会了。因为这里并不是完全的等价于卖case的机制,它是在底层做了一个优化,那也就是说我们原先的这个业务逻辑,哪个业务逻辑呢?就是这一段业务逻辑。同学们看到的这个,呃,Is depend。这个业务逻辑和这个apply,这个业务逻辑可以精简成一句话,就是我们写的这句话。啊好,那同学们我们来玩一把,看看这个是不是立马就能见效,好的,我们还是新建一个文件来做一个测试。
03:00
好,新建一个文件。来吧。好,Passion。方式,简化形式,我们写个零三。对,零三。那么这个时候呢,我们可以,呃,可以将前面的案例的代码减那个偏函数应该平面案例的偏函数啊偏函数。偏函数。偏函数简写,简写成这样一个形式,怎样一个形式呢?就是刚才同学们看的这种形式啊,我们可以简单的给他写一下,我我在这把这个代码拿过来,我们比对一下,大家一下就清晰了,把这个拿过来。啊,把这个拿过来,拿过来过后呢,粘到这,没有必要写这么多了,没有必要写这么多整个这两句话。拿掉拿掉,你可以说的啊,要写case。K是什么呢?一个变量,这个变量随便写啊,你可以写A,可以写B,可以写I啊,我这写的就是I,如果它是一个int,我就去执行,一句话就I加一就完了。
04:10
I加一就完了,那这个时候我们可以看到你在进行完这个处理过后呢,这个地方我们还要做一个动作,哪里呢,就是。Kiss I。F1这里面就不需要再把这个给他了,就是你这地方没有必要给个变量直接写成DEF。啊,就是D,然后这个名字是因为我前面是不是写过一个名字跟他相同的,导致这个问题啊。啊,这这个名重了。啊,重名了,重名的话呢,我们把这个名字改一下,再看这还有什么地方出错了。哪里写错了字儿?哦。这个地方名字是不是这个。地方的名字我们看一下,他还报了一个。
05:01
啊,我看这个名字是哪里。哪儿?等号。等号等于问号,这。哦,这地方还有一个地方要改啊,哎,怎么写成这个德行了啊,这这是这样子写的啊,这样子写的,然后这边我们把这个干脆,呃,看哪个地方写的跟他不一样呢,我看是哪里啊,咱们比对一下啊比对一下。啊,看一下啊,这个地方是DF没问题,函数名没问题,这边有一个这个,然后六不需要写了啊,六不需要写了,然后这边这一个等号给刚才拿掉了,好这样就对了啊这样就对了,那我们来看一下这个怎么理解呢?呃,怎么理解刚才那句话的啊,这个就是我们的一个函数偏函数,然后呢,这边这个逻辑就是刚才这个逻辑跟你刚才是一样的,就简化成这样子了啊,就是简写成。
06:08
哦,减。简写成这样一个逻辑啊,简写成一个case语句就完事了。简写成一个case语句,我们来用一下吧,我们来用一下。好,我们看看这个,呃,用一下,那这里面这个case语句呢,就会自动的转成原先那个逻辑,我们来用一用,还是老规矩,我们写一个list。好,第十的我从这边拿一份过来,就不写它了,直接拿过来用,写到这,这是我的一个list,然后呢,怎么用呢,跟刚才用的法是一样的connect,然后我们把这个偏函数放进去。啊,偏素方进去我们看一下这个结果LIST2。等于好,我们来执行一下。好,我们来执行一下LIST2等于加上一个list,好我们看执行一下啊,同学们执行一下。
07:04
好,我们执行完了过后呢,这个代码就OK了。哎,就那么就OK,你看。对吧?那当然同学们想,我这里可以写一个case,是不是意味着我还可以写其他的逻辑,比如说假如我有这样一个逻辑,想进行一个扩展,什么逻辑呢?就说如果我这里传进去的是小数。对,传入的是小数,那么我希望传入的小数呢,也不能不处理,我这个小数不能不处理,我想做件事情呢,如果是小数这个大类型呢,我希望让它乘以一个二倍,再转成一个int返回。啊,比如说我有这样一个逻辑啊,比如说呃呃,如果是小数,我们就把它直接怎么办呢?乘以一个二,再转成一个整数返回,假如啊,那现在呢,我们可以快速的再来写一个勾对,如果它是一个double类型怎么办呢?诶,我们也可以写入自己新的业务逻辑,那这个时候高乘以一个二,把这个结果呢,诶转成一个to string to。
08:12
啊,为什么呢?因为这个你指定返回是英特,你就必须转,如果你不这样子的话呢,我们看看这个结果它会怎么样子啊,你看这里呢,它就会抛出一个一张,他说呃,你这个double呀,无法转成这个,呃,这个in。转成那我问大家一个问题啊,问大家一个问题,假如我在这写个隐私函数,它能管用吗?在这里啊,如果我这写了一个隐私的,大家觉得这方它能够管用吗?好。其实是可以,那么你们自己去测试一下啊,我这里讲这我就不去写了,这边你也可以写隐式函数来转,那么这里我简单的话,我就直接。把它包起来,转成一个T。返回,好,我们来看看此时此刻这个1.2和2.4会被怎么处理呢?就相当于乘了一个二倍,再转成一个整数,返回那1.2乘以二就是2.4,这个地方是22.4啊,乘以个24.8应该是四,好,我们再次执行。
09:13
啊,我们再次执行,那这个时候执行过后呢,诶同学们看这个跟我们想的一样,那大家想显然这种方式就很厉害了,对吧,为什么呢?因为我可以对你不同的类型,甚至更多的一些判断来进行这个处理啊,这就非常棒了啊,非常棒了,好同学们,这个就是我们讲的它的第一个简化形式,还有一个简化形式呢,更简单。就说你在这个写这个连连偏函数这个都不需要定义了,你只需要把你这个case里面的东西直接扔进去也行,如果是简单的话啊,简单的话,那么我们可以这样写,朋友们。怎么办呢?我连这个偏函数我都不写了,还可以这样简写。第二种简写,简写形式更简单,怎么写呢?比如说我直接来一个list,三。
10:10
List list等于list。点K。Connect,然后呢,这里面我直接把这个逻辑往这放,但是此时此刻啊,这边咱们要用大括号往这边放,哎,你不能用小括号,用大括号,那这个逻辑就等价于原先这个逻辑。等价于原先这个逻辑,那么这时效果和原先那个是一样的,当然我这没有这句话没有写进去啊,好,我们来执行一下,就写个list,三等于加list的三好,这个时候应该返回一个怎样的结果呢?返回的就应该是这样一个结果。返回的就是啊,二一个是223452345,因为后面这个1.2和2.4呢,我这里没有去匹配,就相当于忽略掉,对那这个时候呢,第二种简化形式,我们来运行一下。
11:10
好,我们运行完了过后,我们可以看到这个效果呢,给我们想的也是一样的,对吧,一样的啊没有问题,那当然有些同学老师我能不能在这多写几句呢。好,如果我们多写几句,看看有没有问题。OK。OK,有有问题吗?没有问题,那你都看得懂了,那当然你还可以继续写是吧?啊可以继续写,比如double我的float我要怎么办,对吧?Float我要我干什么呢?我我乘以三倍对吧?原先除以二倍,我乘以三倍,可以的可以,但变量呢,咱们最好换一个,其实你这不换呢,它也没毛病,没毛病,但是呢,最好咱们换一个名字对吧?诶最好换一个名字对吧?好,这样子就OK了。啊,这样就OK了,那么我们现在呢,把这个再来处理一下,诶这辆车再再再整一个新的变量是一点。
12:01
比如说咱们那个1.9整一个什么呢?F。那看看这个时候结果应该是什么呢?好,那就是根据来判断就行了,这个应该返回一个二,这个返回一个四这个返回一个。对吧,三是吧,啊不不一点九乘以三嘛,等于5.7就应该是五好执行一下。那叫狗。诶看效果,那效果出来了没有呢?诶没有问题的吧,是没有问题的,哥,我们想的是完全一样,所以说这种方式呢,大家千万不要说诶诶这个什么意思看不懂,其实它是做了一个偏函数的处理,但是你想到这这个形式跟我们最初写的这个形式可就差别的非常大了,就看起来好像完全是两个东西,但实际上呢,底层它还是一个东西。所以说你看这个看的语法是非常灵活的啊,非常灵活,也非常的强大,好,那关于它的两个简化形式呢,我们就给同学们聊到这里,给大家板述一下。
13:04
大家要学会这个偏函数的简化形式啊,各位同学,我写到这来。就是我们讲的一个偏函数的。偏函数的,呃,简化简写形式吧,简写形式好了,那现在呢,我给它来一个标题三,具体来说呢,就是一段代码啊,代码说明就行了,代码说明。啊代。OK,给他来一个小小的箭头,把刚才写的这段代码呢,给朋友们拿到的啊啊,前面代码可以怎么写的,大家看清楚了,诶看清楚了,那么这样子大家注意一下这个细节好。给同学们板书到这里来。以后要。将来大家推荐大家用简写哈,推荐大家用简写显得高大上一点吧,截取一段视频。
我来说两句