1.lua中,函数也是一种 “第一类值” :代表着函数也是可以赋值给变量的,也可以赋值到table中,可以做为实参传递给其他函数 如下图:函数可以是一组计算也可以是lua的函数,赋值给一个变量,只要你清楚调用方式,传值即可
第二个类型是 函数里面返回函数,这个地方需要注意的是:如下图:如果你直接使用外面的函数,返回的就是函数里面的那个函数地址,有点绕,就是如果你想使用函数里面返回的函数,需要像我第三个写的一样,也需要进行赋值,才能正确的触发计算。再多一层需要自己尝试了
如果你不想给函数赋值也想调用里面的函数呢?直接在后面加就行了,勇敢尝试,电脑不会爆炸
ps:另外:函数里面的函数不需要函数名的
2.由于我用的lua5.4版本,但是程序设计lua是采用5.2版本,有一些更新差距较大,所以需要慎重互相比较,就像这里,5.2可以直接返回函数里面的函数计算值,5.4不能(题外话)
3.函数可以作为局部变量,那么也可以定义table中
函数也可以在函数里面直接调用前面定义的函数:如下图,一开始我也不知道15是怎么出现的
然后我们分析一下 5+4+3+2+1 =15 说明了什么,这莫名的形成了类似于java里面的递归调用了,最后才返回了x,(这里看书是不能直接调用前面定义的函数的,但是5.4的lua可以直接定义)