大家好 我是misk
上次讲解了程序的基本动作
分别是声明,判断,运算
这次要讲解的是”函数”
我认为这对初学者来说这会比较困难
建议可以拿纸笔实际理解一次比较能顺手喔!
如果还没观看第一章,请前往发送门:
函数
函数非常重要,如果不会这个就不用想学API了,我们一样慢慢解释。
1.函数是什么?
简单来说,函数就像是一部机器,它能让写程序的人”操控”,并且会生产东西。
2.函数的声明
我们直接拿例子来解说。
当我们要声明函数时,我们需要在名字前面加上一个”function”,这是要让程序知道这是一个函数。
而这个例子的意思是,我们声明了一个名字为test的函数,并且运行到有end的地方,
也就是value = 1(请记住:test()后面不用再加then)。
再来,刚刚说了这个只是函数的”声明”,并不是”使用”它,所以程序在运行的时候,
它只会解读说:我了解这部机器了,
而不是:我现在要使用这部机器了。
3.函数的使用
那我们要如何让程序”使用”呢?我们需要在代码中调用它,直接上例子。
我们可以看到,在第5行我们打出了这个函数的名字,代表我们调用它了,请记住:
调用方式为test()而不是test
那你会问说,这个括号是做什么用的?
下面解释给您听。
4.参数
我们刚刚说了函数就像是一部机器,它能做操控的动作
但我们要如何写出能操控的函数?
我们要如何操控?
很简单,我们看个例子。
这次函数的声明,你会发现括号中出现东西了,它叫做value。
其实这也是声明变量的一种,我们在函数中声明了value,这时我们就可以在函数内使用这个变量。
这就像一台会制造衣服的机器,你想要制造几个?衣服要什么颜色?
其实都是用参数去做调整的。
4.使用带有参数的函数
我们如何操控?只要在括号内放入正确的参数就好了,看下图。
这么一来,当程序读取到第5行时,value为10,并且开始运行这个函数,一样函数的内容只有一行,也就是value = value + 1,这时的value已经被声明并且为10了,经过运算后,此value的值就是11了。
请记住:函数结束后,函数中的value变量就会被程序舍弃,等到再一次调用此函数时,程序才会再创建value这个变量。
然后您可能会有疑问,就是能不能放更多参数?
当然可以,看下图。
我们让函数的括号出现3个参数,分别是value1,value2,value3,
第5行中,我们使用了函数,先让value1等于10,再让value2等于20,再让value3等于30,之后进入函数中的内容,内容为ans = value1 + value2 + value3,也就是说,ans就为60。
声明多个参数时,请使用逗号分隔。
5.return回传值
我们刚刚说明过,函数像一部机器,不仅能操控外,也可以生产东西,而生产什么东西就要靠return这个关键词了。我们举个例子:
这边在声明函数时,里面多了一个return,这样之后我们使用这个函数时,如果他运行到有return的地方时,它就会回传一个值,并直接结束函数。我们举个例子。
这边我们可以看到再第7行使用了它,这边我们说明一下顺序。
1.程序由上往下,在第1行声明了名叫test的函数。
2.在第7行声明了一个变量a。
3.因为出现=,所以让a等于右边的test(10, 20, 30)。
4.因为看到了test(10, 20, 30),所以开始赋予value1,value2,value3的值,并且开始运行函数。
5.在函数中声明一个变量ans,让它等于10+20+30,也就是60。
6.继续运行并看到return,因此将ans回传,而ans为60,因此这个函数把60回传给a变量,并且马上结束函数。
7.a就等于60了。
6.CSO API的一堆函数
这是CSO API的部分信息。
你会发现很多东西都是用函数去控制的,像是图中的玩家复活或死亡。
所以为什么我会说要学会函数才能使用api?因为当你要控制游戏的一些元素时,就需要用到函数,如果您不知道什么是参数,什么是回传,您将会学得很辛苦。
7.lua的print()函数
并不是所有函数都需要自己声明,有些函数官方会提供,例如在上一章节出现过的print(“您好”),你会发现这其实也是一个函数,print是函数名称,”你好”就是参数。
而这个函数的意思也很简单,就是会在console出现你放的参数,也就是会出现”您好”。
你一定会问说:我要去哪里看?
很简单,你可以在游戏中按下~键,当您运行程序时,所有print出来的东西都会在那个地方。
一样举个例子。
我在game.lua写了这两行
运行时,我们就可以按~键观看印出来的字。
还有很多好用的官方函数,这就看自己的需求再去网络上找喔!网络上有很多资源。
问题
Q:请问图中的value最后是多少?
一样可以在留言区讨论喔!其实这些都算是基本,如果想知道更多东西可以直接上网寻找,毕竟塞太多东西会太难,所以要尽量挑比较重要,并且能链接到API的东西来说明。