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以上版本的经验;)。