Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 什么可以作为参数传递给Lua函数?_Function_Lua_Arguments - Fatal编程技术网

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

Function 什么可以作为参数传递给Lua函数?,function,lua,arguments,Function,Lua,Arguments,我一直在搜索文档和各种问题,但我没有看到这个问题的简单答案。什么类型的值可以作为参数传递给Lua函数 我相信答案是: 纯旧数据,如整数或布尔值 Lua表 其他Lua函数 我想要的是一个全面的列表,其中列出了所有可以传递到函数中的内容。来自Lua: Lua中的所有值都是一级值。这意味着所有值都可以存储在变量中,作为参数传递给其他函数,并作为结果返回 作为参数的vararg表达式 除了将任何值作为参数传递外,还有一个参数不是值:…,即“vararg表达式” 它只能在函数体中作为形式参数使用。当在

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

我相信答案是:

  • 纯旧数据,如整数或布尔值
  • Lua表
  • 其他Lua函数
我想要的是一个全面的列表,其中列出了所有可以传递到函数中的内容。

来自Lua:

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

作为参数的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)

嗯。。。所有的价值观。为什么会有一些限制?例如,如果您尝试从另一种语言传入一个原始对象,该怎么办?是的,甚至可以将“原始对象”作为用户数据进行传递,那么自然的问题是,在Lua中,什么才是值?@bazola,手册的同一部分定义了什么是值。在第2.1节中,它说:Lua中有八种基本类型:nil、boolean、number、string、function、userdata、thread和table。对不起,我应该把整件事都读了,但是很难找到时间!