温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
那么盖了函数的行参默认是Val的,因此呢,不能在函数中进行修改,就你不要去修改它啊,不要去修改它,默认也不让你修改。所以说刚才我们讲了,就是你函数,你函数要去这个修改,它不允许我这样注意一下就可以了,好接着往下看12个递归,刚才我们讲递归的时候呢,有一个地方我没有说,但是有些同学已经发现这个问题了,什么问题呢?递归函数未执行之前是无法自动推断类型的。因此呢,在使用时必须有明确的返回值,说老师这个它为什么不行呢?因为你递归它是这样子的,它。编译器没有那么强大。也就是说他没办法说你这个递归网到底是返回什么,因为这个递归在过程中,他不停的在返回。因为你不能用一个静态的方式来看递归调用,你看这个FF8里面在调用,我知道你发挥哪个吗?不知道,所以说递归呢,你这样用就是错的,他不允许这样写错误。
01:03
错误干什么呢?递归不能使用,不能使用自动推断啊,不能使用这个类型推断,类型推断不能使用推断,必须明确的写清楚啊,必须指定指定这个数据类型,返回的必须指定返回的数据类型,我举例子。还以就就以这个为例。就以这个为例,我们看一下。好,来写一个details。啊,Dis好,然后呢,我们写个叫serve啊,Serve的一个细节。好,这个说完。大家看一个案例就行了,比如说我这里有一个递归的函数,诶这个。啊,算了,我就干脆自己写一个吧,简单写个啊,DEF传进来一个n int int,然后。
02:04
然后呢,我们假如这样写的啊,大家看我要返回一个什么呢?好in好,比如说如果这个NN等于一,我们就返回一个1S。L对吧,L我就随便写啊,F1F1,比如说这个N减去一。N减去一。好,这个代码就写完了,大家看这个代码从语法上是OK的,但是呢,我们如果把这个拿掉。啊,这就报错了。大家看这里他说的很正确啊,他说recerive就是这个递归的方法,方法F1需要结果的一个类型,好说明,说明这个呢,他就没办法去用类型推断,没办法用类型推断好这样大家注意一下这个细节就可以了,好老师呢,就把这个结论给同学们放到这里。
03:02
就递归一定要指定这个返回的类型好,11。11好,我把它呢,拿到我们的笔记中去,拿到笔记中去,好,这段代码我们就放到这了。好,各位同学放这儿啊。OK。好,同学们上午呢,我们就先讲这些哈,讲这些那同学们注意,嗯,今天讲的时候呢,因为我们这个基本语法,同学们基本语法的东西很多,就是老师告诉大家,大家有个印象。呃,没有像项目,现在讲项目就简单是吧,项目呢,我告诉大家怎么做,大家练,那大家可能会听起来好像听的呃不是很多,但练得多,感觉那个互动性很强,但是我们讲这个语法呢,没有办法,就是告诉你这个是什么,大家。可能是理解的加记忆,理解加记忆,后面呢,我们再讲到这个,呃,就是函数式编程的时候,那个理解要稍微多一点,但总体来说还是可能讲你们学想一下你们学Java的时候,你们刚刚学Java的时候,其实你们最最花的时间最多的是一个是那个for循环用的多,第二个就是可能记得东西多一点,好好,那上午呢,我们先讲到这,待会我把笔记发给同学们,发给同学们你们把这个。
04:24
过一过看一看啊好,上午我们先讲到这儿。
我来说两句