gpt4 book ai didi

lua - 枚举带有尾随 nils 的变量返回值

转载 作者:行者123 更新时间:2023-12-04 14:31:04 25 4
gpt4 key购买 nike

从 C 调用 lua 函数时,可以使用 lua_gettop 检查返回了多少值。这甚至包括尾随的 nils——有没有办法只从 Lua 代码做到这一点?这不起作用:

function GetValues()
return 1, 2, 3, nil, nil
end

local t = {GetValues()}
print("Returned "..table.getn(t).." values")

这会打印 3。从 C 执行此操作,可以看到返回了 5 个值。

最佳答案

在 Lua 5.2 中:

local t = table.pack(GetValues())
print("Returned " .. t.n .. " values")

打印 5.

在 Lua 5.1 中 table.pack 不是内置的,但是你可以像这样定义一个类似的函数:

function pack(...)
local t = {...}
t.n = select('#', ...)
return t
end

关于lua - 枚举带有尾随 nils 的变量返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22132416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com