粉丝2708获赞6741

大家好,咱们这些视频呢,给大家详细的介绍一下瑞特这个关键字的作用啊,他的作用呢,在我们一般的学习过程中呢,就认为他呢是返回一个值,哎,这个返回一个值呢,仅仅是他的一个作用啊, 它的作用呢是在第一种在有返回值的这个函数中呢,它是结束函数,哎,注意第一个功能叫做结束函数,并且呢返回一个值。 好,那咱们这个举的这个例子中呢,前面给大家讲了这么一个例子哈,哎,那么就这是我这个我这个范围书里头啊,那么他最终呢蕊特一个八, 那么这个八的话呢?哎,就是我最终函数的值复制给 a 的,哎,正因为我们平时测试的时候都用这种形式,那么大家呢,就把他的这个瑞特呢一个非常关键的功能给他忽略了,就是结束函数哈, 那么就是说呢,我这个东西呢,它不仅仅可以存在我们这个程序的最后,也可以存在程序的前面,对吧? 因为它的作用呢,就是结束函数,在有返回值的这函数中呢,返回了一个值,那么我们这个范函数调用了,就是进来之后直接呢就瑞特按时,哎,瑞特呢结束函数,那么这块呢,直接就结束了,后面的代码呢,什么都不执行了,或这个瑞特呢直接就返回到了我们这函数的调用的这个处, 哎,这就是结束,相当于我们呃外号循环里边的布瑞克,哎,遇到布瑞克直接就结束,后面代码都不执行了,那么我当前的这个范数的值多少啊?哎,就是十了,对吧?好,咱们运行一下, 哎,我,我们看到这个结果呢,就是实了,对吧?那后面这个呢,就不执行啊,这就是结束函数,那么并且返回一个值哈,那么既然他有结束函数的作用呢,并且在有返回,就在这函数中呢返回一个值, 那么呢他也是可以用在这个没返回值的函数中的啊,那么在没返回值的函数中呢?哎,他就是结束函数的这个作用,不用去返回一个值,对吧?啊,那么这一点呢,也是大家很多小伙子呢在学习的时候呢说,哎,我 worry 的这样的一个,呃,返回值的函数中呢,为什么也可以加这个瑞特啊,对吧,为什么也可以加这个东西呢? 啊,对吧,那此时呢,采用的就是它的一个结束函数的作用,对吧?啊,那么无返回纸的话呢,咱这块呢,也不能使用返回纸了,那这块呢,就相当于都没有了,哎,那这个时候呢,我们去输出的话啊,比如说我们如今呢啊,如此呢,这样去写代码哈,那么我们输出的是什么呀? 哎,那正常调,我们发函数进来,直接呢就输出嗨漏,然后呢蕊特结束函数返回到我们调用处,哎,所以这个蕊特这个功能呢,你可以理解为返回到调用处,哎,直接从这就反过去了,后面这块呢不直行了,所以这个 函数的真结果呢,就输出了一个嗨漏,那么下面这个普润南夫呢,就不执行了啊,而此时呢,他就是仅仅是一个结束函数的作用啊, 看这个结束函数,对吧?那有一天我就说了,嗯,那我什么时候结束函数啊?嗯,那这个代码是你写的,对吧?你这个代码的逻辑也是你自己去想的,那你想什么时候结束就什么时候结束了,对吧?我们也可以呢,哎,就相当于呢,呃,就跟这个呃外欧里边的博瑞和他的用法是一样的 啊,我们可以呢加上一个条件,在什么条件下去结束函数,在什么条件下呢?不结束函数,对吧?那么这个条件呢,我们可以通过参数去传啊,咱们简单的给大家演示一下啊,这东西 就是我们这个代码,只要你把他的这个基本的语法形式学会了之后啊,你想怎么写就怎么写啊,不要说哎,我这个不能写反馈值,哎,我这个必须写什么 招的没有那个事啊。嗯,就想怎么写就怎么写,比如说我们当当这个呃,程序是传递的是三的时候啊,哎,我们就瑞特走这个瑞特,对吧?啊?那么最后这个瑞特还用加吗?不用加了,因为这个瑞特你写不写最后这个瑞特他都是解除函数了,对吧?他说最后这个呢是不用加的, 哎,那个当的三的时候我传第三,那么他就输出完第一个,嗨喽,第二个呢就瑞特呢,对吧?来看一下,那就输出一个 啊,这个对吧?那如果说是比如传递了一个二啊,传递个二二的话呢?这个条件就违假,违假的话呢?这个就不执行,对吧?不执行那就继续往下走下面的呗,那就输出一个 hello, 输出 hello c 三, 哎,对吧?哎,非常的方便啊,怎么着都行。好,继续呢,我们看一下课件上 的这个内容啊,这会写着在没有反复指的函数中他是结束函数的作用啊,结束这个功能呢,就像循环中的 break, 哎,之间呢就中断跳出了,后面的代码呢,全都不知行了。 那么函数里边呢,也可以写无数个瑞特,你写多少都行,在你需要的位置呢,就去瑞特,那不需要的话呢,你就不用瑞特啊,就这些功能呢,不是强行的去使用,而是说你需要的时候去使用,你不需要的时候呢,你就不要去使用了,仅此而已,对吧?哎,好,这就是瑞特啊。

一分钟学会一个盘词之年,今天我们来介绍一下拍词中函数的返回值,在函数中呢,我们使用里特关键字将这个函数运行的结果返回给他的调用值。函数必须要有返回值吗? 上盖子啊,这里我们定义了一个函数,他有一个返回值 content, 我们直接在函数内部可以使用这个 content 变量,但是如果我们把它放到函数外面以后, 大家就会发现这个变量已经无法使用了,因为他在函数内部是局部变量,而拿到外面以后就变成了全局变量,这个时候呢,就找不到他变量值。 所以呢,为了能够使用函数中产生的结果,这个时候我们会使用雷特恩把这个结果返回去。返回给谁了呢?返回给他的调用者,所以在这里我们直接来接受一下这个 result, 此时我们就可以在全 局环境下使用这个 recept 了,也就是这个函数产生的结果。这就是为什么我们要使用 reten 进行返回,还想学习什么牌子知识点?评论区里告诉我。

每天一个技术点, ctrl 和 break 都作用于循环体。当我们想提前结束循环,就可以用到这两个关键字。两者的区别在于, ctrl team 只是结束当前循环,然后执行下一次循环。 break 是跳出整个循环, 继续执行循环体后面的语句。假设正常的循环次数是一百次,当执行到五十次时,进行了抗踢扭,那当前循环会立刻终止,然后执行后五十次循环。那如果执行到五十次时,进行的是 break, 则直接结束整个循环体,后五十次循环也不执行了。 雷特是作用于方法,用来结束整个方法题。雷特可以单独被调用,用于没有返回值的方法,也可以携带一个词用于有返回值的方法。如果将雷特放在循环体内,他当然也 也可以直接结束循环。但是要注意,用雷特你结束循环,那循环体后面的语句也不会被执行。跟着螃蟹哥技术不翻车。

我们去给大家讲一下 python 当中的 return, 那这个 return 它的作用是什么呢?是将函数的处理结果返回给调用它的程序,也就是说使用 return 是向程序的调用处提供返回结果的。 那有同学老师我不懂,那我给你举个例子就好了,这个是谁呀?这是你的领导,你的上级领导,这个是谁呢?职员啊,也就说你, 然后紧接着你的领导给你下达一个命令,让你去完成他,然后紧接着你就上这里去完成去了啊。去完成你的工作,然后完成你的工作之后, 你是不是要把结果向你的上级领导进行一个汇报,那么这个汇报啊,在程序当中就叫做什么 返回,返回给调用你的地方的程序去使用它,那么它的语法是什么样子的?它的语法是这样的,首先叫 d e f, 开始当中使用 df 去声明一个函数,然后这是函数的名称,函数的名称属于我们的标识符字母数字下划线 不能使关键字啊,不然会出报错的。然后呢?小括号,冒号,冒号,然后 这个东西老是省略的,这个东西叫函数题,就执行功能的代码块。最后瑞特 i q r, 瑞特后面是一个表达式,当然这个表达式可以是一个结果啊,只要是个运算结果就行了。 既然是返回值,返回值,那他的结果肯定是一个值。那这个小括率号里头需要什么呢?这个小括号里有就写,没有就不写,我们把它叫做参数, 那然后这个 rat 老师把它放在方括号里,那为什么要放在方括号里呢?告诉你方括号的东西是可写不可不写的,比如说你的这个函数定义完成之后, rat 是可以不写的,那什么时候不写?这是它的语法, 函数定义的语法。然后呢,这个方括号当中的 richer 表达是,这是什么?这是一个可选项,如果函数的运行有 结果,需要提交给函数的调用处,则需要编写。 那么如果函数的运行没有结果,什么叫没有结果?我运行完就完事了,这件事情我做完到我这就结束了,我不需要向谁汇报没有结果,那么我们的这个 return 可以省略, 那么你省略不写,他将返回什么呢?如果省略不写, 省略不写,那么将是谁呀?叫 n o n e。 那现在呢,我们去给大家写这样的一个例子, 那这个例子叫什么?这个例子叫做猜数。哎,这个结果就是猜对了,还是猜错了,那我可以怎么写?首先我决定一个函数叫 g u e s s 猜, 然后呢,你这里面给我写一个参数,叫 n u m, 那这个参数 n u m 的作用是什么呢?就是提供 就代表吧,代表用户所猜的那个数。然后呢,你既然猜数,那你猜的是跟谁做对比呢? 所以我在这里的时候去随机形成一个数啊,去导入随机的话,我们去导入一个叫做 random 这样的模块,然后 random 当中有一个叫 random in, 他可以产生随机数,我们让他产生一个一到十之间的随机数,然后这个一到十之间的随机数,我们用你说的数和这个一到十之间的随机数去进行比较,那这时候啊,他的比较结果就是 true, 那然后要是不相等呢?那不相等的话,那就是 return first, 这两种情况相等呢,就是处,不相等就是 first。 那好了,那我这样去把它写完了,那写完之后呢?那我们先来看一下, 函数写完之后,我们就需要去调用它,那我在这调用的时候,你看一下啊,我 g u e s s, 这是我调用函数,我需要 说一个数,假如我说八,然后呢,我在这里去 i e s u r t i e s 吧,这是一个变量,用于干什么?接收这个函数的一个结果,那我接收这个函数的结果之后,我就需要去做什么, 是不是啊?我就需要去进行一个判断,因为你的这个 i e s 啊,因为这个 i e s 的结果 可能是处,也可能是什么 boss, 那我就判断一下呗,如果 is 就如果为处的时候,我给他打输出,叫做什么?猜对了, 那要是 aisles 呢?我就打印它,叫做没猜对, 没猜对好了,那现在写完之后,我单击右键去运行他,他说我没猜对, 但是啊,他既然说没猜对,我想知道那他产生的这个随机数是多少呢?我可以在这打印一次输出啊,就随机数为 i n, 那么我们单击右键运行看一下,随机数为二,所以我输的八叫没猜对。那这个时候是函数有返回值的情况,我是这样去写的,让它返回处或者是 force, 那么我可不可以不使用返回值呢?当然也可以,你可以这样去写,咋去写?叫 e f g u e g u e s s e, 然后呢,你要猜的数是 n u m, 那产生随机数 r a n random 点 random in, 它还是产生一到十之间的一个随机数,这回我在判断的时候啊,如果 n u m 和 i n 相等的时候,我就直接输出猜对了, 那否则的话我就直接输出猜错了,随机数为 多少啊? a n, 是不是这函数写完了,然后这个函数写完之后,我再去调用一下这个函数,我依然输入的是八, 那我们现在来看一下下面的这个结果,我用于分隔一下, 单击右键运行,看下面告诉我猜错了,随机数是二,是因为这个 i n 他是二, 而我的是猜的是八,所以猜错了。那现在那你这块为什么不付给一个变量呢?那我也可以付给一个变量啊,你比如说我用我也用 is 去接收他的这个结果, 对吧?我去接收他的这个结果,然后你去输出他这个结果的时候,他的这个结果就是 n o n e, 因为在整个的这个函数当中没有去使用到 racher, 那就是咱们上面所说的,如果没有写 特瑞特省略了,那么这个函数的返回结果就是 n o n e, 那我们要这个 n o n e 是没有用的,所以我们只需要直接调用即可。 那这个就是我们的带返回值和不带返回值的情况,如果你还是不懂的话, 不懂老师我什么时候应该带有返回值,什么时候应该不带返回值,那我给你举个例子,这个例子可能稍微有点恶心啊,要是介意的同学可以直接过掉, 你说什么呢?你平时上厕所排便,那你上厕所排便,这属于一个函数吧,属于一个功能吧。那你排完之后是不是按一下那个下水的那个,那个按钮一冲,那个粪便就已经没有了,走了是不是? 那这个你一按一充没有了,那叫什么?那叫无法为止。但如果你这个身体不舒服去医院的话,让医生给你开个单子,那医生给你开个单子之后,告诉你要让你验便怎么办?验便, 上厕所去排便,整个小器皿接着点,接着点干什么?臭啊?嗲嗲嗲,端回去给放到检验壳里,这个时候你为什么不冲走了呀? 因为检验科的医生需要用你这个粪便去化验,这就是需要返回值。为什么你那粪便就是一个返回值,为什么要拿回来接回来点呢?因为医生要化验,所以一个函数到底应不应该有返回值取决于他的情况, 也就是说这个函数执行完的结果是否需要在其他的地方使用?你这个排完便之后,那个便需要化验的时候使用,我就需要有返回值,而你的器皿接着点,那器皿就是我们的什么电量, 这个大家在学习的过程当中慢慢的去总结,慢慢的去体会。

大家好,我是彭涛,今天我们继续讲一下函数,然后函数的关键词蕊称,通过蕊称可以返回一个或者是多个字,这样子的话可以更好的附用代码。我们之前的话通过 prine 的方式来打印,其实不是很好服用我们的代码,那么我们现在通过定一个加法程序来 进行两个数的相加,比如说我们现在传入一和二,然后返回一个三,大家可以直行看一下。 ok, 那么我们现在只返回一个字,那如果我们想要返回多个字呢?比如说我们现在有一个加法减法的程序,既传入一二进去,既能够做加法,又能够做减法,那我们看一下我们的执行效果, 大家可以看一下 a 加 b, 他的求和是三,然后求差是负一,这个就是我们可以返回多个纸,我们函数的附用就得到了最大化的利用了。

函数返回类型和蕊程语句,一个函数被调用,执行完以后,他还要回到被调用的地方,继续执行下面的流程,那他可以有返回值,也可能是没有返回值。我们先看没有返回值的情况, 没有返回值,我们的返回类型就是 void, 表示空,就是没有的意思。我们这样一个例子叫 swamp 交换,交换的是两个变量里面存的值, 如果两个变量一样,就没有必要交换了,我们直接 return。 这个 return。 我们后面没有跟任何的返回值,因为我们返回的是 worry 的,所以这个 return 在这里呢,它的作用就好像我们在循环里的 break 一样,或者 swich 的 break 一样,表示我们跳 出当前的函数,如果这条不满足,我们就继续往下走。 我们这里创建了一个变量作为中转,然后呢进行维一跟维亚的一个交换,在最后的地方,我们这里没有写旅程语句,因为我们返回类型是 void, 所以可以不写。 总之我们已经到结束了,有没有有没有 return 无所谓,对吧?但在前面呢,因为我需要跳过下面的内容,所以我需要一个 return。 好,我们再来看另一个 有返回之的情况,有返回之就有两个地方要注意,你 return 语句必须要 有,而且你返回的内容必须是和我是一致的,至少你是可以通过默认的转换,是吧?转换成我这样类型才可以。 因为含有不正确的返回值,所以这段代码是无法变异的,我们看看他错在哪里。这是两个引用,引用的是两个支付串, 进来以后,我们先看看两个字步串是不是一样大?因为我现在是要问两个字步串是不是相互之间是一种指字步串的关系? subrush, 那如果你大小一样,又是指织布串,就只有一种可能,就是两个织布串就是一样的,要 abc, 这是一个织布串,另一个呢,也是 abc, 我才能认为这两个是有这种 字母串的,这种关系有子鸡的关系,那如果不等呢?不等我们就继续往下,对吧?如果上面大小也一样,所有的内容也一样,那么我们就程序就退出了,就返回去就好了,就代表确实是有这种子鸡的关系。 好,如果不是这种情况,我们再往下,那我们就看哪个比较小,比如说我们 s 一,它是 abcd, 我就问这两个哪个的塞子比较小,我就娶她娶小的 啊,如果是 s 一,他的塞子比较小,我就取 s 一,否则呢?我就取的是 s 二的塞子。那我这里个例子为例,取出来的值应该是三吧,我的大小就是三,那我就比前三 三项就好了。比 abc, 如果前面 abc 是一样的,那也代表是一个子集的关系。 如果我们比的时候发现有一个不一样,只要有一个不一样,我们应该是 return force, 那这里面直接 return 啊,和我们最终的反馈类型不匹配,所以不对,你要加上一个 force, 这里才可以。没有返回直编辑器,这个错误他是会帮你找到的。这是我们的一号错误。 当我们整个程序如果 for, 这里面没有退出,就没有 return 啊,没有 return 到一个值,前面也没有 return, 那么有可能我们就执行到下面了,那下面也 没有 return, 整个程序也是一种错误吧,这是一种在谁家家里面没有定义的行为,我们前面讲过,没有定义的行为啊,往往就会造成程序的崩溃,或者是其他一些莫名其妙的问题, 前面这个变音器是一定能帮你找到的,但是这一个问题二号我们的错误,二号就不一定了,要控制流可能上位返回任何值,我们这个程序就结束了,就到这里了,我们第一个位称能保证执行到最后,第一个位称呢,如果你加上复制的话,他也能保证执行到最后。 我们举个例子啊,如果你比较的时候有一个是空字无串,他的赛字就是零,那我们这里比出来的得到的值,这个赛字是不是就是零?所以我们这个 for 语句一记都 一次都不会自行,对吧?我们假设啊,一个是空自助串,什么都没有,一个呢,是这样的,一个自助串他是有的,不管是什么都可以, abc 也可以,无所谓。那比的时候这里面不满足吧,首先两个大小不一样,不满足 执行到这里的时候呢,得到的是零,塞的等于零,因为你塞的是零,所以一次也不会执行, 直接到下面也没有蕊成语句,但是我们曾需要结束,结束的时候他需要你返回一个蕊成语句,就造成了一个未定义的这样的一个结果 值是如何被返回的?如果 conter, 也就是计数器的值大于一,我们返回的就是 单词的复数形式,否则就返回单词本身。 make a pro pro pro 就是复数的意思,我们三个参数,第一个是激素器,第二个是单词,第三个呢是我们如果是复数,我们要加一个 ending 判断,如果我们记录器大一,就返回复数形式原本的单词后面加个 ending, 否则就返回这个单词本身。我们的 tree 不是引用,所以呢,我们返回的是 word 的一个副本,或者是一个没有命名的临时对象。 我们再看下面这个,进来的是两个引用, s 一和 s 二, return 呢,看情况,如果是 s 一比较短,那就返回 s 一,否则返回 s 二。因为 s 一和 都是饮用,所以他们都是食餐的别名而已。而我这里 return 呢,也是啊,大家都是 const, 所以也没有问题,我们的底层都是 const 的, 从始至终这里面都没有真正发生拷贝吧。 我们用引用作为返回值的时候,一定要注意不要返回局部对象,用指针的时候也是同样的情况,我们看下面这样一个例子, 同样是引用一个支付串,但是我们这个支付串呢,是在我们函数里面声明的,当我们程序结束的时候,是不是这个对象就也结束了,他的声明周期也就结束了,那你返回他,你拿到 他的引用有什么用呢?所以这个地方是错误的,我们返回这样的一个零食的局部变量也是一样的情况,所以都是不允许的。 我们再来看一下返回类类型的函数和调用预算符, 如果我们返回的是一个类类型的对象,那么我们要调用他的成员函数呢,就可以和点操作符结合起来使用,那我们就要助力我们的 调用符函数调用符就是这个小括号,和我们的点他的优先级是一样的,那就看结合率啦,结合率是从左往右,所以我们先 执行的是我们的函数调用,然后执行的是他点, 我们再来看引用返回坐值,我们直接看代码,从面开始看, s 是是去掉一个对象,我们把它输出,输出呢?原封不动的输出,然后我们把控制权交给了函数,函数是对 s 的一个引用, 我们传进来的两个字,一个是我们 ay 里有这个字串,以及传进来是一个零,那么 我 str 其实就是 s 的一个别名吧,所以我们这里面拿到的就是 s 零。而我们的下标访问符返回 其实也是引用,他就引用了我的第零个元素了,那我再把它给作为返回值,那这个返回值 就是一个左值,他还可以被负值,对吧?因为我现在返回的就是我 s 的第一个元素,就下边为零的这个元素,那我对他进行负值,负值 a 给他,可以吧?所以我们这个小写的 a 就变成大写的 a 了, 然后我们再进行一个输出,这里面要注意啊,如果我们 between 本身是一个 conste 的, 对于我这个 s 来说,我们这是顶层 cons, 对吧?但是你被引用的时候呢,就变成了底层 cons 了,那我们用的时候这里面一定要加 ct, 那这里加了 ct, 我返回的时候也要加 ct 吧,你不能去修改它吧?所以这里面一定要注意,如果返回类型是常量饮用,则不可以调用 我们的结果进行复制。长量就不要进行复制了吗?对吧?你,虽然你是左肢,但是你是不能被复制的。 列表初始化返回值,这是在七加加十一里面开始支持的,我们也是直接来看例子, 这是一返回的是一个容器,名字叫 process, 这个例子我们前面其实看过啊,差不多的一个例子,如果我们 expected 这个字福串是空的,我们直接就返回一 一个空的列表,返回一个空 what 对象那里面什么都没有。 如果我们的 expected 和 actual 是相等的,和 actual 是相等的,那么我们返回的是 function, ok, 就表示这个程序达到我们的目的了。 返回的这个初始化列表呢,有两个值,这两个值就会装到我们的容器里面去,那我们返回的时候,我们这个容器就能拿到两个元素,如果不是呢,那我们返回的是方形 x, expected 和 actual, 那它拿到的就是三个元素。 这个地方你是作为返回值,或者你拿出来用,都要遵循同样的原则。 我们前面也讲过,当你用初始化列表的时候,如果你是给一个内置的类型,比如说印特,进行初始化的时候,要一定要注意啊,如果你是给印特,你这里不能写三零一四,因为他会发生一个叫做窄转换,对吧?如果你这里面是三,这样是没有问题的, 我们可以回忆一下我们前面学过的内容啊。如果我们是用初始化列表,就不允许发生窄转换,就一定是要很匹配的 主函数 man 的返回直,我们直接来看这样的一个例子, man 他需要 return 一个 in 才行,然后呢,我们通过一个直来判断,如果有错误,我们就返回 exist failure, 这是在 c stand 的内部头文件里面定义的一个预定义的值,下面呢是 sucks, 也是定义在这个头文件里面的,好像没有什么问题,对吧?但是如果我们把它改一下呢?比如说我们就什么都没有,这样有错误吗? 对于别的程序来说是不可以,但是对于妹来说是可以的,因为这一期会在必要的时候为你添加一个 returning, 毕竟妹是比较特殊的,所以这个是可以这样做的。 好,我们再看下地规,地规简单来说啊,就是程序自己调用自己,那我们来看这样的一个例子,简单的画一下,就像我们会编语言去执行的过程,我们把它给绘制出来,我们的球结成假 色,我们传进来这个值是四,那进来以后我们就看这个值是不是大于一的,大于一我们就给他返回,那这个就成了三的阶层去乘以四。 对于地规函数来说,一定要有个推出条件,要不然就成了一个死循环了,直到你的站的空间都耗光了,这个程序就崩溃了, 而且每一次他都会新开辟一块内存去解决一个新的问题啊,地规是比较效率比较低的啊,尽量不要用,能用迭代就不要用地规。 那么看啊,第一遍进来的时候,其实呢,我们看上去是四的阶层,这个问题也就这个函数把 fector v 四,实际上我们解决的办法是用三的阶层去乘以四,那现在呢?我 我叫解决三的阶层的问题,我又开了一块内存去解决这个 factory, 三,他就变成了二的阶层去乘以三,那同样的二的阶层呢?我又需要开一片内存去解决这个问题,一个新的函数变成了一的阶层,去乘以二 一的阶层,我又开一个去解决,那一的阶层进来以后就发现这里不满足了吧,直接捋成一,所以他是等于一的,等于一这个地方就替换成一了啊,那个这个地方我就给替换成二了吧。二的阶层是二, 就变成了二,乘以三等于三的阶层就等于六,那三的阶层乘以四呢,就变成了六,乘以四的阶层就变成了二十四,对吧?如果还有五呢, 就再乘以五,就变成一百一百二。你每解决一个,实际上他的任务就完成了,那这块内存就被回收了,那这个也是一样啊,这个也是一样,对吧?一步一步的,那程序全部结束的时候,你得到的就是四个阶层,也就是二十四这个字。 我们再来看一下返回速度的增,因为我们不可能返回速阻, 因为速度不能拷贝,所以不能直接作为返回值。我们前面讲速度的时候也提到过,如果作为类型 毒性比较差,我们就用别名的方式,可以用 typety fine 取一个别名,或者呢用优点的方式也可以。这样呢,看上去就比较明确了。我们 我们有一个函数,这个函数的反馈类型是一个指针,指向的是我们刚才定义的这种类型,而这个类型呢,是装有十个硬的形的一个数组。 好,我们看这样一个例子,这是一个函数,他的返回的是一个指针,指向的是 我们这样的一个数足,那他和我们上面这条是一样的啊,明显上面这个可读性更强一点。如果你不用别名,那你去写 我们容量的时候,就要写在我们函数名称的后面,但是我们函数名称的后面已经有了一个参数列表,所以呢,你还要写在参数列表的后面, 就像我们现在这里面一样,我们读这个的时候,从里往外读,先读括号 里面的。首先他是返回的是一个指针,对吧?指向的是我们外面的这个类型啊,总之这样的读法呢,还是可读性比较差,不如写成上面这样比较好。 我们一层一层来看啊,方可选是一个函数,接收的是一个 inter 型的参数, 他返回的是一个指针,指向的是一个 有十个元素的数组,每一个元素什么类型的呢?是硬字类型的,我们可以一层一层看,从里往外啊,从右往左。在这家十一以后啊,我们还支持一种叫做尾字返回类型 形,因为返回类型很麻烦,我们就直接写个 otal 推倒。从哪推倒呢?我们直接写在后面,我们这个函数返回的是一个指针,指向的是外面的这种类型,这样也可以。 这几种方式啊,都是为了提高我们的可读性,因为作为宿主的话,你用指向指针指向他,或者是用引用,引用他的时候,作为一个单独的类型啊,看起来比较费劲。 那我们还我们还可以用 dict 泰普的方式,当我们知道函数返回的数组将指向哪个数组的时候,我们就可以把这个任务交给编辑器。 我们这里面有一个激素,有一个偶数,他们的大小都是五,所以呢,他们的类型都是一样的,对我们, 对我们来说啊,这个五也是我们这个类型的一部分。好,那么我们的这个太补得到的就是这个类型吧?啊?他不是指针啊,在底下太补来说,他拿到的不是指针,而是一个数组,那我们这个函数需要返回一个指向这种数组 的指针,返回指针,这是数组根据我们对二的余数的结果,如果是一的话,我们返回激素,否则我们返回偶数, 返回基数这个数组的时候,我们取下地址,那么我们返回呢?是指向这个数组数组的指针,返回的一个指向数组的指针,那这样也可以。
