00:00
接下来我们要介绍的是scla当中非常有趣的一个概念,叫做控制抽象啊,这个名称听起来就很抽象啊,这说的到底是什么呢?它主要是针对函数的参数而言的,是函数参数里边比较有有趣的一个特性啊,那大家比较熟悉的函数参数一一般长什么样呢?啊,其实这个我们都不陌生啊,那就是函数参数,比方说我定义一个int类型的参数啊,那接下来呢,肯定就是说要调用它的时候,就把一个int类型的值传给他就完了,这个过程就相当于是一个变量的赋值。把一个值赋给A,那后边我们用到的这个A,那就全部都是这个值,拿这个值直接替代就完了啊,这种函数的参数我们一般把它叫做传值参数,那这种调用呢,我们就叫做值调用啊,简单来讲就是把计算之后的值调用的时候啊,把计算之后的值传给函数的参数,传到函数里面去,这是大家最常见的,那与之对应的我们现在所说的控制抽象是什么呢?
01:06
啊,其实说的是我们现在不要直接传值了,而是要把。一部分代码,代码块作为一个整体直接传递给一个函数的参数。啊,所以这种情况呢,一般情况我们就把它叫做传名参数,那么调用的过程我们就把它叫做明调用啊,所以大家看到控制抽象主要就是区分的是值调用和名调用,传值参数和传名参数啊,这个听起来概念确实还是抽象了一点,我们接下来还是在代码当中举一个具体的例子给大家来看一看到底是怎么回事啊,接下来我们还是新建一个scla的object。TEST11、接下来我们要测的是控制抽象control abstraction接下来我们把main方法先写出来。首先第一个我们还是先来看一下行规的传值参数怎么用,那最简单的场景,我们先定义一个这样的函数F0,比方说这里边它的参数就是一个int类型的值啊,Int类型的变量叫做A,当前我不需要有任何的返回值,就给一个int类型。
02:24
边呢非常简单,直接打印一句话,那大家知道就是调用的时候,你只要给这个A传一个整形int类型的值,那后边用到A的地方就全是那个值了嘛,所以比方说这里边我们打印出A的值来,A。冒号,然后加上A的值,那假如说我们把这一行要打印多次的话,那就每一个用到A的地方是它传进来的那个值啊,其实是非常简单的一个用法啊,比方说这里边我们直接传一个23,我们先看一下结果。非常简单啊,那就是打印输出A冒号对吧,没没有一行我们都是一行打印啊,那后面的这个A呢,那就是都用23替代就完事了。
03:09
这就是传值传值参数啊,那另外我们比方说,假如说这里边我们再定义另外的一个函数啊,叫F1 f1呢,也不需要有参数了啊,它就是要有一个返回值,是一个int类型的,然后接下来里边我呃,我们这里边可以直接打印一句话啊,打印这个F1用。然后最后他要返回一个int类型的值,那最后一行我们只要给一个int整数不就完了吗?接下来大家知道,如果这个时候啊,零本身如果调用的时候,我们把F1调用的这个结果,如果要是直接作为参数传进来的话,那是什么样的呢?哎,那其实很明显就是。F1要首先要调一次。输出这个当前普F1调用,然后呢,得到一个返回值是12,接下来呢,就把这个12作为值传递给A这个参数,那接下来F0调用的时候,里边肯定就是打印输出两个A12 a12对吧?啊,那我们看一下这个最后的结果。
04:19
大家看到有一句F1调用,它先调用一次啊,计算出结果,接下来就是A12 a12这个我们看的非常的明显。非常熟悉,这就是最常见的传值参数的用法。
我来说两句