00:00
好,同学们啊,那么接下来呢,我们这一讲呢,给大家介绍一下如何在flux语言里面去自定义函数。好,那么这里呢,我直接敲代码,然后呢,大家来看一下这个效果。呃,我现在呢,去做一个乘法啊,一个可以直接可以进行乘法的函数。进行乘法运算的函数,好啊,那么这里呢,我就去首先呢去写个变量,变量名,我这里呢就用拼音,哎,乘法啊,然后写一个等于号。呃,接下来呢,就是我声明函数的一个语法括号X,逗号Y,哎,那么这里呢,哎,这个小括号呢,其实就是我的参数列表,然后呢,我通过一个等于号哎,大于号组成一个箭头,哎,后面呢,来写我的函数体的基本逻辑,这里呢,就是X乘以Y。好,我们现在呢,可以去调用一下这个函数试一下效果啊,比如说我现在弄一个变量名叫X,哎,等于乘法括号你可以看到,哎,我们这个编辑器里面呢,提示我们啊,乘法这个函数呢,需要X和Y2个参数啊,现在呢,我分别进行指定,X呢我们就给它一个四,Y呢我们就给他一个五。
01:18
哎,Y冒号五啊,现在呢,我们把这个X呢,放到这个输出结果里面来点击提交看下效果。来看一下这个原始数据。往下拉一下。好可以看到,哎,我们刚才这个执行呢,它就把这个XY呢给乘起来了,然后返回的结果呢,就是20。啊,那么这个函数呢,就很简单啊,另外呢,我们可以给这个参数呢,去设一个默认值啊,比如说我现在呢,希望这个Y的默认值呢,就是100啊,这里呢要用等于号100啊现在呢我可以啊先去提交一下,哎,可以看到我的运行结果呢,还是20啊,但是现在呢,我可以把这个Y呢,哎,不指定这个Y的参数。好,那么现在你可以看到没有报错,点击提交。
02:02
啊,那么我们的X呢,就会默认和这个100呢进行相乘啊,但是这个X我如果不指定可不可以呢?哎,答案是不行啊不行,也就是说如果你这个参数没有提供默认值的话,你就在调用的时候呢,必须去指定一个明确的值。好啊,那么我们现在这个写的函数呢,你会发现它只有一行代码啊,一行代码,但是有些时候呢,哎,我们这个逻辑呢,比较复杂,就可能需要涉及到多行代码。呃,那么这个时候,比如说我现在呢,需要对X先先做一个简易百的操作啊,然后再进行这个呃相乘的操作,你会发现呢,这里面语法就出问题了,因为一行里面呢啊,毕竟是写不了两行代码,呃,那么这个时候怎么办呢?我们可以看一下,哎,答案呢是使用花括号。啊,这个时候呢,我们就指定了一个代码块啊,现在呢,我们可以在这个代码块里面呢,去写多行代码啊,比如说我希望这个X减五啊,先减五等于X减五。啊,那么最后呢,也可以发现这里面呢,会报错啊,为什么呢?是因为我们这个flux言的函数啊,Flux语言里面的函数都必须有返回值。
03:12
啊,所以说呢,我们这里必须去进行一个return的操作啊,当我们有多行代码的时候呢,你要注意你必须显示的指定return,而且return呢啊,必须在我们整个代码的块的最后一行啊,现在呢,我去return一个,把这个X乘外的结果呢作为一个返回值。啊,那么这里呢,可以看到啊,这里面这个变量呢,已经被啊注册过了,所以说这个写法呢,是不合法的啊此处呢,我用一个新的变量名叫Z,那现在返回的是Z城外点击提交。啊,还没调用呢,不能提交啊,啊现在呢,我再去做一个这个,呃,调用调用一下这个函数,比如说我现在呢,使用这个X为六。啊跟Y相乘,Y就我不我就不传了啊,那么现在六减五等于一,然后一再和100相乘,最后我反馈的结果呢,应该就是100啊点击提交。
04:06
啊,那么可以看到这里面呢,又报了一个错,说是我这个没有定义一个啊是我们的14行代码啊,因为这里呢,啊没有对这个返回值啊,啊没有对这个变量去做一个说明,现在呢,用它这个X变量呢,啊去接下我们的返回值好。呃,最后点击提交。好,可以看到最后的这个返回结果呢,就是100啊,那么也就是说啊,当我们的代码只有单行的时候啊,其实是不用指定这个return语句的啊,不用去显示的指定这个return语句。啊,也可以看到还有报错啊,那么当你只有单行代码的时候,而且这一行啊,你这行代码。哎,你这个操作它本身会返回一个值的时候呢,啊,那么你可以写成这种格式,就是我不带这个代码块了,不带这个画画括号,哎,直接一行代码把这个逻辑给写出来,那么这是可以的啊,当你要涉及到多行代码的时候呢,你就必须使用我刚才写那个方式划括号啊,再加一个return。
05:06
呃,那么现在呢,再给大家说一下我们的这个in Fla DB的函数呢?如何去做一个类型的约束?啊,可以看到右边这个文档,那你比如说这个T啊,可以看到呢,它就只允许传递啊,Time类型或者德式类型的一个参数。呃,那么现在的话,我们怎么去做这个功能呢。那其实呢啊,不用你去操这个心,呃,我们这个函数呢,一旦约定,那你比如说我现在哎,就要去进行一个乘法操作啊,那么乘法呢,只能发生在这个呃数值类型的一个呃基础之上,比如说是浮点数乘呃浮点数啊无符号整数或者说是普通的整数啊,那么此处呢,我一旦把这个代码的逻辑确定,那你可以看到啊,我先把这个X呃换成一个字符串啊,那么现在你可以看到我X呢,往里面传这个字符串呢,是合法的,这里呢没有爆红。啊,那么现在呢,我去写一个return e tux,哎,乘以Y。
06:01
啊,你会发现呢,底下就爆红了啊,那么我们的flax语言呢,它会根据啊,会根据我们这个函数内部的逻辑去自动判断我们的参数呢,能传什么类型,不能传什么类型啊然后呢,去做这个提示的功能啊现在呢,我点击提交。哎,可以看到你会发现呢,这个说这个,呃,我们的这个乘法的这个函数啊,它不支持我们的啊,一个字符串的类型。呃,所以呢,我们现在可以看到这里呢,其实已经做好了啊,自动化的做好了一个啊类型的约束。呃,最后呢,同学们要注意一下,就是我们的这个函数呢,其实在flux语言里面也算是一个类型啊,呃,Flux原理。呃,这个函数呢,也是类型。啊,同学们可以看到啊,我这个地方,哎,声明函数的这个过程,这个函数名大家可以看到。呃,它呢,其实是一个赋值的操作,也就是说,呃,真正声明参数的逻辑呢,啊,这个代码其实是我们这个小括号开始啊后面这一部分。
07:09
哎,这一部分是我们的啊,一个函数的声明啊,其实我们声明的这个函数,然后把这个函数呢,赋值给了我们乘法啊,这一个变量名。呃,这也就是说呢,我们的函数其实可以通,呃,可以使用这个变量的方式来回传递啊,那么现在呢,我写一个花里胡哨的啊,大家可以看一下。呃,首先呢,我就声明一个有名字的这个函数叫做get乘法。啊,然后呢,它等于一个,呃,我们说呢,我打一个这个呃小括号表示呢,我这里面不需要参数,然后呢,我再写一个等于号呃箭头,然后此处呢,我写一个花括号啊,我写个花括号。呃,这里呢,我需要使用一个呃,显示的这个return语句,Re。啊,或者呢,我先不这个return啊,我再去声明一个函数叫乘法,哎,它等于小括号X逗号Y啊,它是两个参数,然后呢,此处它要返回的呃值就是X乘以Y。
08:14
啊,最后呢啊,对于我们这个外面这个代码块而言呢,我把这个乘法来返回过去,Return乘法,好呃,首先呢,Get乘法函数,我们可以看到它会返回一个什么类型,它会返回一个什么值呢?啊,它会返回一个函数,然后这个函数呢,就是我们的一个乘法函数,现在呢,我们可以使用get乘法呢,来进行一次乘法运算。啊,也可以看到我现在怎么写这个,呃,写这个代码,呃,我还是声明一个变量叫X,呃,此处呢,我把这个值换一下X,好,X等于get乘法啊,那么我现在这里面可以直接传XY吗?哎,不行,因为我get乘法是一个返回函数的哎,函数,那么它呢,这里面我们可以看到它的参数列表啊,是一个空参啊,此处呢,我们把XY抹掉。
09:05
啊,那么这一行代码的执行结果呢,就是返回我们的乘法的这个函数啊,现在呢,再通过这个小括号啊,就可以传递X和Y了,我们现在传递X和Y啊,比如说X是十,Y呢是五啊可以看到呢,这个没有报错啊,所以说啊,现在呢,我们先点提交看下效果。哎,直接查看原数据。好哎,可以看到这个结果,运算的结果呢,就是50,也就是说通过这个乘法啊,通过这个内部的局部变量,我们把这个函数啊,把这个函数呢,作为一个呃变量给返回过来啊供外面的去使用,那么这就是我们整个啊函数的一个用法,哎,那么这种情况啊,呃,因为我们这个flash语言呢,它现在有一个局限,就是我们这些package这些包。啊,你是没有办法自己去,呃,去做一个包的啊,那么这些包啊,其实都是写在源码里面的,你现在没有办法去啊,就是我自己去打个包,然后自己以后去用怎么着?呃,现在呢,还没有这个功能,所以说呢,我们去把一段代码呢,封装成一个函数,其实呢,就是为了减少我重复的去写这样代码啊,那么它呢,如果不能提供一个自定义包的功能啊,那么写这个函数的意义呢,其实就不是很大,呃,所以说呢,这一讲呢,其实主要是给大家说一下这个函数呢,我们是可以自定义的啊,这样的话,我们这个啊,为了一个课程的完整完整性啊,给大家介绍一下这部分的内容。
我来说两句