Lua函数的参数可以传递什么?

我已经搜索了文档和各种问题,但我没有看到这个问题的简单答案。 Lua函数的参数可以传递哪些类型的值?

我相信答案是:

  • 简单数据类型,例如整数或布尔值
  • Lua表
  • 其他Lua函数

我正在寻找的是一个全面的列表,列出可以传递给函数的所有内容。

点赞
用户107090
用户107090

从 Lua 的 参考手册 中:

在 Lua 中,所有的值都是一等值。这意味着所有的值都可以存储在变量中,作为参数传递给其他函数,以及作为结果返回。

2014-08-20 16:07:23
用户2226988
用户2226988

变长表达式作为参数

除了将任何值作为参数传递外,还有一个不是值的参数:...,即“变长表达式”。

它只能在函数体中作为形式参数使用。当在列表末尾使用时,它会用它所代表的所有实际参数扩展列表。当在列表末尾之前使用时,它仅用它所代表的第一个实际参数扩展列表。

local function f(a, b, ...)
    print("f", a, b, ..., "end")
end

local function g(x, y, ...)
    print( "g", x, y, ...)
end

f()
f(1)
f(1,2)
f(1,2,3)
f(1,2,3,4)
f(1,2,3,4,5)
g()
g(1)
g(1,2)
g(1,2,3)
g(1,2,3,4)
g(1,2,3,4,5)
2014-08-20 22:38:56