Lua函数中引入(…)作为参数的版本是什么?

Lua函数中引入(…)作为参数的版本是什么?,lua,parameter-passing,argument-passing,Lua,Parameter Passing,Argument Passing,这是我能想象到的最简单的例子: function NewPrint(...) print("printed:", ...) end NewPrint("Hi") 请注意,我实际上已经有一段时间没有使用Lua了,我可能错过了一些语法。根据,它是Lua5.1 Lua5.1于2006年2月21日发布。它的主要新特性是一个新的模块系统、增量垃圾收集、varargs的新机制、长字符串和注释的新语法、mod和length运算符、所有类型的元表、通过luaconf.h的新配置方案以及完全可重入的解

这是我能想象到的最简单的例子:

function NewPrint(...)
    print("printed:", ...)
end

NewPrint("Hi")
请注意,我实际上已经有一段时间没有使用Lua了,我可能错过了一些语法。

根据,它是Lua5.1

Lua5.1于2006年2月21日发布。它的主要新特性是一个新的模块系统、增量垃圾收集、varargs的新机制、长字符串和注释的新语法、mod和length运算符、所有类型的元表、通过luaconf.h的新配置方案以及完全可重入的解析器


lua5.0()中引入了函数定义中的语法(多亏Luiz纠正了我的错误),但是当您想要访问那些vararg时,需要使用
arg
table。这在Lua5.1中已经修复,它允许使用
..
符号来定义和访问varargs。

旧的
arg
表相当于
{…}
。而
locala,b=arg[1],arg[2]
将等同于
locala,b=…
。vararg函数是在Lua 2.5中引入的:参见和HOPL论文第6页的表格,@lhf;谢谢你的澄清!我没有走那么远,也没有使用5.0以上版本的经验;)。