什么可以作为参数传递给Lua函数?

时间:2014-08-20 15:01:43

标签: function lua arguments

我一直在搜索文档和各种问题,但我没有看到这个问题的明确答案。什么类型的值可以作为参数传递给Lua函数?

我相信答案是:

  • 普通旧数据,例如Integer或Boolean
  • Lua Tables
  • 其他Lua函数

我正在寻找的是一个可以传递到函数中的所有内容的综合列表。

2 个答案:

答案 0 :(得分:4)

来自Lua reference manual

  

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

答案 1 :(得分:1)

vararg表达式作为参数

除了将任何值作为参数传递外,还有一个参数不是值:...," vararg表达式。"

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

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)