- 函数调用时都需要使用一对圆括号把参数列表括起来。
- 例外情况:当函数只有一个参数且该参数是字符串常量或表构造器时,括号是可选的。
- Lua语言也为面向对象风格的调用(object-oriented call)提供了一种特殊的语法,即冒号操作符。
- 一般来说,我们选择使用C语言编写的函数来实现对性能要求更高,或不容易直接通过Lua语言进行操作的操作系统机制等。
- Lua语言标准库中所有的函数都是使用C语言编写的。
- 调用函数时使用的参数个数可以与定义函数时使用的参数个数不一致。Lua语言会通过抛弃多余参数和将不足的参数设为nil的方式来调整参数的个数。
- Lua语言编写的函数同样可以返回多个结果,只需在return关键字后列出所有要返回的值即可。
- Lua语言中的函数可以是可变长参数函数(variadic),即可以支持数量可变的参数。
table.pack
table.unpack
select
- Lua语言是支持尾调用消除(tail-call elimination)的。这意味着Lua语言可以正确的尾递归。