在 Lua 中,函数可以使用可变参数列表来接收任意数量的参数。通常情况下,我们会使用 ... 来表示可变参数列表。例如:
```
function sum(...)
local total = 0
for i, v in ipairs({...}) do
total = total + v
end
return total
end
```
这个函数可以接收任意数量的参数,并将它们相加返回总和。
但是,如果在函数定义时省略了参数名,那么在函数内部就无法直接访问这些参数。不过,可以通过特殊的全局变量 arg 来访问这些参数。arg 是一个表,其中包含了所有传入函数的参数。例如:
```
function sum(...)
local total = 0
for i, v in ipairs(arg) do
total = total + v
end
return total
end
```
这个函数与前面的函数功能相同,但是使用了 arg 变量来访问可变参数列表。
需要注意的是,arg 变量只能在函数内部使用,不能在函数外部访问。此外,在 Lua 5.1 版本中,arg 变量默认是全局变量,而在 Lua 5.2 及以上版本中,arg 变量被废弃了,可以使用 ... 来代替。因此,建议在编写 Lua 函数时,明确指定参数名,以避免出现不必要的问题。