如何在Lua5.3中正确重新定义打印?
我经常使用如何在Lua5.3中正确重新定义打印?,lua,lua-5.3,Lua,Lua 5.3,我经常使用print函数与os.exit()一起进行调试。我不想每次使用print时都键入os.exit(),因此我想重新定义此函数 > function pprint(...) >> for _,a in ipairs(arg) do >> print(a) >> end >> os.exit() >> end > pprint('hello',1,2,3) hello 1 2 3 [johndoe@dell-john
print
函数与os.exit()
一起进行调试。我不想每次使用print
时都键入os.exit()
,因此我想重新定义此函数
> function pprint(...)
>> for _,a in ipairs(arg) do
>> print(a)
>> end
>> os.exit()
>> end
> pprint('hello',1,2,3)
hello
1
2
3
[johndoe@dell-john ~]$
虽然这在lua5.1中起作用,但在lua5.3中不起作用,并且由于某些原因。我在Lua5.3文档中查找“三点”表达式,但找不到有关如何访问
…
参数的参考。您能否解释一下Lua 5.3中更改了什么以及如何重新定义print
?自动创建vararg函数的arg
表在Lua 5.1中被弃用,在Lua 5.2中被删除
正如Egor所提到的,使用
for _,a in ipairs({...}) do
而不是
for _,a in ipairs(arg) do
或添加
local arg={...}
函数开始时。对于uIpairs({…})do中的a错误,它不支持nil
右重写
local arg=table.pack(…)
对于i=1,参数n do
旧打印(arg[i])
结束
对于ipairs{…}do中的uA