00:02
请大家多关注我的主页,看更多的各元初级视频,这节课开始讲底分。为什么各语元中要增加底分的关键字呢?这个是非常有用的。在函数中,程序经常需要创建资源,比如数据库连接、文件锁等等。为了在函数执行完毕后,几次的释放资源,各自设计了提供几份这个演示机制。现在写代码体验一下。我这里直接复制代码案例。第一个案例。我们先分析一下。一。上。这个时候IE等于路上并不会执行。N等于二。A等于I1加I2,这个时候I等于三。
01:01
Seven。A肯定是等于三的。然后函数快要结束的时候,执行第二个底,这个时候CN肯定是等于二的。最后执行第一个地方。一肯定是等于一的,所以我们预测的结果是C3A等于三,C2A2等于二,C1A1等于一。主函数里面调用F1,我们运行一下,看一下结果。我们可以看到。首先。执行的是STEP3A等于三。直行C22等于二,直行C于I1等于一,这符合预期的结果。我们看一下第二个案例。
02:05
第二个案例跟第一个案例是一样的,只是多了两条语句。爱一家家,好家家。所以。直线的顺序也是STEM3STEMSTEM1。问题在于,哎,每C3C2C1之后的值,我们可以先分析一下。首先是一。C1入上,这个时候IE等于一的。23。N等于二。A1加加,这个时候I1肯定是等于二的。佳佳。他那肯定是等于三的。A等于A加二,这个时候A肯定是等于五的。
03:02
C3A肯定是等于五的。这。这个I等于二。I。所以我们分析出来C3肯定是等于五。C2有两个值,二和三,C1有一和二。这这4C2和C3分别是什么样的值呢?我们只能通过运行结果来分析了。F1改成F2。我们可以看到C3I等于五,这个是绝对没问题。但是C1等于一了,C2等于二了。
04:00
这个是为什么?这个是实际上函数调用是分为两步的。函数调用分为两步。第一步是全餐。第二步是执行。而底分这个关键字只是延迟执行,并不会延迟穿摊。所以。所以碰到第一个底分的时候,Ae等于一。并且参数已经传进来了。碰到第二个地缝的时候。等于二。并且已经参,并且参数已经传进来了。再执行IE加加,这个是跟C1里面的IE没关系了。
05:00
C82加掉跟C82里面的I也没有关系。所以最后的运行结果是521。我们再看一个案例。这这个案例更加复复杂了。你第分里面有爱的方法。爱的方法里面又有爱的方法。我们看一下PPT。底方后面无论跟了多么复杂语句,底方只是对最后一步延迟执行。也就说。一会儿只管坐在他里面一讲。我们分析一下。底分儿碰到底分了,第一步肯定是。
06:04
实行I的一二这个函数。然后再执行,按了三次。最后执行。A的一加二就等于三了,三加四等于七。这个肯定是要一份的。最后执行F3。F3执行完毕后,执行二的三号七,我们可以。写一下运行结果艾特一二,我们看一下艾的方法里面,它是直接打印了艾。第一个参数,第二个参数最后的结果。所以二的一二肯定会打印一加二。
07:00
订餐。执行,执行。第二个爱的。三加四等于七。碰到这底分儿不管。执行F3。最后执行一份三加七。三加七等于十。这是我们预期的结果。Main函数中,F2改成F3。我们运行一下,看是不是合这样的结果。我们可以看到,一加二等于三三加四等于7F33加七等于十。这符合预期的结果。我们可以看到一份只管最后的临门一角。
08:06
还有一个需要注意,函数调用分为两步。而李会只会延迟执行,并不会延迟船舱。你会只会言辞执行?并不,不会延迟传餐。下节课讲一些底分的相关的题目。
我来说两句