函数的定义
在 Lua 中 function 关键字修饰的代码块就是函数了,而函数跟变量差不多,同样存在局部函数和全局函数,不过作用域不一样,都是以 local 作为区分的。
函数的结构就是上面代码编写的那样,以 function 为首的代码块,Add 就是函数的名称,a 和 b 就是函数的参数( Lua 中函数参数也和变量一样不需要指定类型,赋值之后才拥有类型 ),在 function 和 end 中间的就是函数体了。函数可以有返回值或者没有返回值,需要返回值的时候直接 return 就好了。
在使用函数的过程中发现,Lua 中的函数好像是没有重载的,后声明的函数会覆盖先前声明的同名函数。
虽然 Lua 中没有像样的函数重载,但是 Lua 函数对于传入的参数个数要求很宽松,也就是说 Lua 会去自动适应传入的参数,如果参数传入的参数超过函数定义的参数,则会忽略后面的参数,如果传少了参数,Lua 还会将不足的参数用 nil 替代。基于 Lua 的这种特性,可以有以下形式实现重载。(一个想法,不一定对)
函数的多返回值
Lua 的函数返回值是可以有多个的,具体只需要在 return 后以逗号隔开不同返回值即可。不过接收的时候也需要声明相同数量的变量,如果少了或多了,返回值赋予的变量就按声明顺序来赋值。
函数的可变参数
Lua 的函数是可以接收或多或少的参数,使用 ... 来表示这样的可变参数。
针对函数的可变参数,Lua 中还存在 select 函数进行对可变参数中的固定索引截取部分。
函数先学这么多,今天就到这里~
领取专属 10元无门槛券
私享最新 技术干货