让arg在Lua 5.2中的varag函数中工作(集成在Delphi中)

Sam*_*eer 4 delphi lua

使用Lua 5.2 API时,下面的代码打印"nil"

function __debug(szName, ...)
    print(type(arg));
end

__debug("s", 1, 2, 3, 4);
Run Code Online (Sandbox Code Playgroud)

但是这个代码在使用Lua 5.1时会起作用,并打印"table"

Mic*_*man 11

如果您指的是vararg函数,则该arg已在Lua 5.1中弃用.在Lua 5.2中,您可以根据table.pack需要创建arg:

function debug(name, ...)
    local arg = table.pack(...)
    print(name)
    for i=1,arg.n do
        print(i, arg[i])
    end
end
Run Code Online (Sandbox Code Playgroud)